Maison > base de données > tutoriel mysql > Comment verrouiller plusieurs tables dans MySQL ?

Comment verrouiller plusieurs tables dans MySQL ?

王林
Libérer: 2023-09-04 11:13:11
avant
773 Les gens l'ont consulté

Comment verrouiller plusieurs tables dans MySQL ?

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;
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal