Avec la commande LOCK TABLES, vous pouvez implémenter plusieurs verrous de table. La syntaxe est la suivante -
LOCK TABLES yourTableName1 WRITE; LOCK TABLES yourTableName2 WRITE; LOCK TABLES yourTableName3 WRITE; LOCK TABLES yourTableName4 WRITE; . . . N;
Le verrouillage de table n'est pas sécurisé pour les transactions, il valide implicitement la transaction active avant d'essayer de verrouiller la deuxième table.
Supposons que j'ai une table 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)
Voici la requête pour verrouiller les tables OrderDemo et utfdemo. utfdemo existe déjà dans la base de données exemple. La requête est la suivante -
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)
Maintenant, elle verrouille la table de la session. Si vous essayez de créer une table, vous obtiendrez une erreur.
L'erreur est la suivante -
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
Pour résoudre ce problème, vous devez redémarrer MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!