MySQL verifique si el bloqueo es gratis

MySQL verifique si el bloqueo es gratis

En MySQL, un bloqueo se refiere a una bandera especial que se incluye en una tabla de base de datos. Un bloqueo evita que otras sesiones accedan a la misma tabla simultáneamente. Una sesión de MySQL puede conectarse y acceder o liberar el bloqueo por sí mismo. Esto significa que una sesión no puede adquirir o lanzar bloqueos para otras sesiones. Una vez que se libera un bloqueo, las sesiones adicionales pueden acceder y modificar la tabla.

Este artículo explorará los fundamentos de los bloqueos en MySQL y cómo podemos crear uno y adquirir y lanzar un bloqueo en una tabla de base de datos.

Crear tabla de muestra

Antes de continuar con la creación y adquisición de bloqueos en MySQL, creemos una tabla de muestra que podamos usar para ilustrar este código.

Fragmento de código:

Cómo crear bloquear en mysql

Una vez que tengamos la tabla de muestra creada y lista para comenzar, podemos continuar y discutir cómo crear un bloqueo en una tabla MySQL.

Como adivinó, para crear un bloqueo en MySQL, usamos la declaración de tablas de bloqueo.

La sintaxis es como se muestra a continuación:

Bloqueas Tablas Table_Name [Leer | ESCRIBIR]

En la declaración anterior, comenzamos con la palabra clave de las tablas de bloqueo seguido del nombre de la tabla que deseamos bloquear.

Luego especificamos el tipo de bloqueo que deseamos crear para la tabla establecida. Tipos de bloqueo compatible:

  1. Leer [local] -La sesión puede leer la tabla pero no escribirle.
    a. Este tipo de bloqueo puede ser utilizado por múltiples sesiones simultáneamente, ya que no se aplican alteraciones a la tabla.
    b. Del mismo modo, otras sesiones sin bloqueo de lectura también pueden leer en la mesa.
  2. [Baja prioridad] Escribir - Este tipo de bloqueo permite que la sesión lea y escriba a la mesa.
    a. A diferencia del bloqueo de lectura, solo un cliente puede adquirir un bloqueo de escritura en una tabla determinada.
    b. MySQL también bloqueará cualquier solicitud de bloqueo por otras sesiones mientras se celebra esta cerradura.

Crear bloqueo de lectura

Podemos crear un bloqueo de lectura en la tabla que creamos anteriormente ejecutando el código como se muestra:

Los usuarios de la mesa de bloqueo leen;

Esto debería crear un bloqueo de lectura en la tabla, permitiendo solo operaciones de lectura. Podemos verificar esto insertando un registro en la tabla.

INSERTAR EN
usuarios (nombre de usuario, correo electrónico, país)
VALORES
('Linuxhint', '[email protected] ',' nosotros ');

Dado que la tabla está bloqueada con un bloqueo de lectura, MySQL devolverá un error como se muestra:

Para insertar en la tabla, puede liberar el bloqueo utilizando la declaración de desbloqueo.

Desbloquear tablas;

Esto debería desbloquear las tablas y permitirle a usted y a otras sesiones realizar las operaciones de destino.

MySQL verifique si el bloqueo nombrado es gratis

Afortunadamente, MySQL nos proporciona una función simple que nos permite determinar si un bloqueo con nombre es gratuito o no.

La sintaxis de la función es como se muestra a continuación:

Is_free_lock (str)

Donde STR se refiere al nombre de la cerradura, desea verificar si es gratis. Si es gratis, la función devuelve 1. Por lo tanto, ninguna sesión está usando el bloqueo. De lo contrario, la función devuelve 0, lo que significa que el bloqueo está en uso.

Otra función que necesita saber es la función IS_USED_LOCK (). La sintaxis es como se muestra:

Is_used_lock (str)

La función determina si el bloqueo declarado es gratuito. Si es cierto, el identificador de conexión de la sesión return. Más, regresa nulo.

Conclusión

Este artículo exploró cómo trabajar con cerraduras en la base de datos MySQL. Discutimos cómo podría crear un bloqueo de adquisición a una tabla específica, cómo desbloquear una tabla y cómo verificar si un bloqueo es gratuito o no.