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

MySQL如何鎖定多個表?

王林
發布: 2023-09-04 11:13:11
轉載
776 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板