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:
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.