sql >> Base de Datos >  >> RDS >> Mysql

Bloqueo de lectura Mysql SELECCIONAR PARA ACTUALIZAR

Estás buscando bloqueos con nombre (cuidado, cosas peligrosas, no te entretengas experimentando con bloqueos en servidores de producción :D).

Echa un vistazo a:

A1 :elija una cadena única para bloquear y use GET_LOCK en él (digamos, GET_LOCK('conversation_' || [id]); si devuelve 1 la cerradura es tuya. Haz lo que quieras y luego llama a RELEASE_LOCK (teniendo en cuenta todos los escenarios posibles, incluidos los errores).

A2 :El segundo parámetro de GET_LOCK es un tiempo de espera en segundos . Si la operación supera el tiempo GET_LOCK devolverá 0 .

De la documentación oficial

Las negritas son mías:

  1. Significa que solo puede mantener un bloqueo por conexión (no es un problema para su caso de usuario)
  2. Significa que los bloqueos se liberarán una vez que cierre la conexión
  3. Significa que dos conexiones diferentes (incluso del mismo grupo) pueden no adquirir el mismo aspecto a la vez.