首頁 >資料庫 >mysql教程 >MySQL如何鎖定多個表?

MySQL如何鎖定多個表?

王林
王林轉載
2023-09-04 11:13:11787瀏覽

MySQL如何鎖定多個表?

借助 LOCK TABLES 指令,您可以實作多個表鎖。語法如下 -

LOCK TABLES yourTableName1 WRITE;
LOCK TABLES yourTableName2 WRITE;
LOCK TABLES yourTableName3 WRITE;
LOCK TABLES yourTableName4 WRITE;
.
.
.
N;

表鎖定不是事務安全的,它在嘗試鎖定第二個表之前首先隱式提交活動事務。

假設我有一個表格 OrderDemo -

mysql> create table OrderDemo
   -> (
   -> OrderId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> OrderPrice int,
   -> OrderDatetime datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

這裡是鎖定表 OrderDemo 和 utfdemo 的查詢。 utfdemo 已存在於範例資料庫中。查詢如下 -

mysql> LOCK TABLES OrderDemo WRITE;
Query OK, 0 rows affected (0.03 sec)
mysql> LOCK TABLES utfdemo WRITE;
Query OK, 0 rows affected (0.07 sec)

現在它鎖定會話的表。如果您嘗試建立表格,則會收到錯誤。

錯誤如下 -

mysql> create table LockTableDemo
   -> (
   -> UserId int,
   -> UserName varchar(10)
   -> );
ERROR 1100 (HY000): Table 'LockTableDemo' was not locked with LOCK TABLES
mysql> create table UserIformation
   -> (
   -> UserId int,
   -> UserName varchar(10)
   -> );
ERROR 1100 (HY000): Table 'UserIformation' was not locked with LOCK TABLES

要解決此問題,您需要重新啟動 MySQL。

以上是MySQL如何鎖定多個表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除