Bạn phải khóa mọi bàn , mà bạn muốn sử dụng cho đến LOCK
được phát hành. Bạn có thể cung cấp cho completely_different_table_2
chỉ một READ LOCK
, cho phép các quy trình khác đọc bảng này trong khi nó bị khóa:
LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
Tái bút:MySQL có lý do để làm như vậy. Nếu bạn yêu cầu một LOCK
, bạn muốn cố định trạng thái nhất quán của dữ liệu của mình. Nếu bạn đọc dữ liệu từ completely_different_table_2
bên trong LOCK
của bạn , dữ liệu của bạn được ghi vào table_1
theo một cách nào đó sẽ phụ thuộc vào bảng này khác. Do đó, bạn không muốn bất kỳ ai thay đổi bảng này trong LOCK
của mình và yêu cầu một READ LOCK
cho bảng thứ hai này. Nếu dữ liệu của bạn được ghi vào table_1
không phụ thuộc vào bảng khác, chỉ cần không truy vấn nó cho đến khi LOCK
được phát hành.