Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengunci berbilang jadual dalam MySQL?

Bagaimana untuk mengunci berbilang jadual dalam MySQL?

王林
王林ke hadapan
2023-09-04 11:13:11777semak imbas

Bagaimana untuk mengunci berbilang jadual dalam MySQL?

Dengan arahan LOCK TABLES, anda boleh melaksanakan berbilang kunci meja. Sintaksnya adalah seperti berikut -

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

Kunci jadual tidak selamat transaksi, ia secara tersirat melakukan transaksi aktif terlebih dahulu sebelum cuba mengunci jadual kedua.

Andaikan saya mempunyai jadual 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)

Berikut ialah pertanyaan untuk mengunci jadual OrderDemo dan utfdemo. utfdemo sudah wujud dalam pangkalan data sampel. Pertanyaannya adalah seperti berikut -

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)

Kini ia mengunci jadual sesi. Jika anda cuba membuat jadual, anda akan mendapat ralat.

Ralat adalah seperti berikut -

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

Untuk menyelesaikan masalah ini, anda perlu memulakan semula MySQL.

Atas ialah kandungan terperinci Bagaimana untuk mengunci berbilang jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam