2013-11-20 2 views
1

나는 잠그고 나서 읽어야 할 스케줄링 테이블을 가지고 있습니다. 나는 현재이 작업을 수행하려고 :이 프로그램을 실행할 때mysql 테이블 잠금 앨리어싱이 작동하지 않습니다.

LOCK TABLES db.schedule AS j_read READ; 

SELECT * FROM db.schedule as j_read; 

UNLOCK TABLES; 

나는 오류를 얻을 : 나는 MySQL의 테이블 잠금 문서 mysql docs을 통해 갔어요하지만 이것이 왜 우리를 질수 그림

Error Code: 1100. Table 'j_read' was not locked with LOCK TABLES

나를 위해 일하지 않아. 별칭을 지정하지 않으면이 기능이 작동합니다.

LOCK TABLES db.schedule READ; 

SELECT * FROM db.schedule; 

UNLOCK TABLES; 

왜 제대로 작동하지 않는지 또는 올바르게 설정하는 방법에 대한 아이디어가 있습니까?

답변

2

이 방법을 찾았습니다. 별칭 이름과 테이블 자체에 대한 자물쇠를 얻어야합니다.

LOCK TABLES db.schedule READ,db.schedule AS j_read READ; 

SELECT * FROM db.schedule as j_read; 

UNLOCK TABLES; 
0

이 문서를 살펴보면 여전히 테이블에서 선택해야하지만 잠금 별칭을 참조해야합니다. 마지막 줄을 찾고 있어요.

mysql> LOCK TABLE t AS myalias READ; 
mysql> SELECT * FROM t; 
ERROR 1100: Table 't' was not locked with LOCK TABLES 
mysql> SELECT * FROM t AS myalias; 
+0

죄송합니다. 내 게시물에서 그 사실을 놓쳐 버렸습니다. 그게 실제로 나에게도 똑같은 오류를 던졌습니다. 지금 업데이트 된 버전보기 – Jake

관련 문제