ホームページ >データベース >mysql チュートリアル >MySQL で複数のテーブルをロックするにはどうすればよいですか?

MySQL で複数のテーブルをロックするにはどうすればよいですか?

王林
王林転載
2023-09-04 11:13:11805ブラウズ

MySQL で複数のテーブルをロックするにはどうすればよいですか?

LOCK TABLES コマンドを使用すると、複数のテーブル ロックを実装できます。構文は次のとおりです。 -

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

テーブル ロックはトランザクション セーフではなく、2 番目のテーブルをロックしようとする前に、最初にアクティブなトランザクションを暗黙的にコミットします。

テーブル 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。