현재 쓰레드에서 한 db내의 두개의 테이블 tbl_A , tbl_B 을 가지고 작업중에 tbl_A 에 락이 필요해서 락을 걸고 작업중 tbl_B 의 데이터가 필요하여 select 하면
==> Table 'tbl_B' was not locked with LOCK TABLES
위와 같은 에러가 뜨는데요..
락을 걸때 무조건 현재쓰레드에서 사용하고자 하는 테이블은 모두 락을 걸어주어야 하나요?
궁금합니다. 아시는분 답변 부탁드립니다.
정확치는 않으나 lock table을 하면
lock tables 테이블 모드(read,write..);시에
해당 테이블에 대한것이 아니라
lock이 구성되면 그안에서는 정해진 테이블이외에는 접근이
않됩니다.
lock tables tbl_A write,tbl_B read;
식으로 처음 Lock걸때 핸들링할 테이블에 대한 정의가 있어야 하는걸로 알고 있습니다.
아니면 tbl_A에 대해서 락선언후 다른 테이블 컨트롤이 생기게 되시면
다시 lock tables tbl_B read; 식으로 주시면 해결은 가능합니다.
역시나 모두 선언하는것 밖에 방법이 없는거 같군요.
조성준님..답변 감사합니다.