MySQL Vérifiez si le verrouillage est gratuit

MySQL Vérifiez si le verrouillage est gratuit

Dans MySQL, une serrure fait référence à un drapeau spécial inclus dans une table de base de données. Une serrure empêche les autres sessions d'accéder simultanément à la même table. Une session MySQL peut se connecter et accéder ou libérer le verrou pour lui-même. Cela signifie qu'une session ne peut pas acquérir ou libérer des verrous pour d'autres sessions. Une fois le verrouillage libéré, des séances supplémentaires peuvent accéder et modifier le tableau.

Cet article explorera les principes fondamentaux des écluses dans MySQL et comment nous pouvons en créer un et acquérir et libérer un verrou à une table de base de données.

Créer un exemple de table

Avant de procéder à la création et à l'acquisition de verrouillage dans MySQL, créons un exemple de tableau que nous pouvons utiliser pour illustrer ce code.

Extrait de code:

Comment créer un verrouillage dans mysql

Une fois que le tableau d'échantillonnage est créé et prêt à partir, nous pouvons procéder et discuter de la façon de créer un verrou dans une table MySQL.

Comme vous l'avez deviné, pour créer une serrure dans MySQL, nous utilisons l'instruction Tables de verrouillage.

La syntaxe est comme indiqué ci-dessous:

Tableaux de verrouillage table_name [lire | ÉCRIRE]

Dans l'instruction ci-dessus, nous commençons par le mot-clé Tables de verrouillage suivi du nom du tableau que nous souhaitons verrouiller.

Nous spécifions ensuite le type de verrouillage que nous souhaitons créer pour la table définie. Types de verrouillage pris en charge:

  1. Lire [local] -La session peut lire le tableau mais ne pas y écrire.
    un. Ce type de verrouillage peut être utilisé par plusieurs séances simultanément car aucune modification n'est appliquée au tableau.
    b. De même, d'autres séances sans serrure de lecture peuvent également lire dans la table.
  2. [Faible priorité] Écrivez - Ce type de verrouillage permet à la session de lire et d'écrire sur la table.
    un. Contrairement au verrouillage de lecture, un seul client peut acquérir un verrouillage d'écriture dans une table donnée.
    b. MySQL bloquera également toutes les demandes de verrouillage par d'autres sessions pendant que ce verrou est tenu.

Créer un verrouillage de lecture

Nous pouvons créer un verrouillage de lecture dans la table que nous avons créée plus tôt en exécutant le code comme indiqué:

Les utilisateurs de la table de verrouillage lisent;

Cela devrait créer un verrouillage de lecture sur le tableau permettant uniquement les opérations de lecture. Nous pouvons le vérifier en insérant un enregistrement dans la table.

INSÉRER DANS
utilisateurs (nom d'utilisateur, e-mail, pays)
VALEURS
('Linuxhint', 'dev @ linuxhint.com ',' nous ');

Étant donné que la table est verrouillée avec un verrouillage de lecture, MySQL renvoie une erreur comme indiqué:

Pour vous insérer dans la table, vous pouvez libérer le verrou en utilisant l'instruction déverrouille.

Déverrouiller les tables;

Cela devrait déverrouiller les tables et permettre à vous et à d'autres séances d'effectuer les opérations cibles.

MySQL Vérifier si le verrouillage nommé est gratuit

Heureusement, MySQL nous offre une fonction simple qui nous permet de déterminer si un verrou nommé est gratuit ou non.

La syntaxe de fonction est comme indiqué ci-dessous:

Is_free_lock (str)

Où STR fait référence au nom de la serrure, vous souhaitez vérifier si c'est gratuit. Si libre, la fonction renvoie 1. Par conséquent, aucune session n'utilise le verrouillage. Sinon, la fonction renvoie 0, ce qui signifie que le verrou est utilisé.

Une autre fonction que vous devez savoir est la fonction is_used_lock (). La syntaxe est comme indiqué:

Is_used_lock (str)

La fonction détermine si le verrouillage indiqué est gratuit. Si vrai, retournez l'identifiant de connexion de la session. Sinon, retourne null.

Conclusion

Cet article a exploré comment travailler avec les verrous dans la base de données MySQL. Nous avons discuté de la façon dont vous pourriez créer un verrouillage acquérir sur une table spécifique, comment déverrouiller une table et comment vérifier si un verrou est gratuit ou non.