Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

323
Vistas
LOCK TABLES no funciona como se esperaba con varias tablas

Trato de entender por qué hay un error en el siguiente caso que indica que una tabla "no estaba bloqueada" a pesar de que se emitió un (WRITE) LOCK justo antes.

Esta es la configuración (MySQL / MariaDB):

 CREATE TABLE A ( id INT ); CREATE TABLE B ( id INT );

Estos son los casos (el primero es el que falla):

 # does not work --> Error: "Table 'B' was not locked with LOCK TABLES" on 2nd statement LOCK TABLES A WRITE, B WRITE; INSERT INTO A (id) VALUES ((SELECT 1 FROM B)), ((SELECT 2 FROM B)); UNLOCK TABLES; # works (single statements) LOCK TABLES A WRITE, B WRITE; INSERT INTO A (id) VALUES ((SELECT 1 FROM B)); INSERT INTO A (id) VALUES ((SELECT 2 FROM B)); UNLOCK TABLES; # works (table aliases) LOCK TABLES A WRITE, B tb1 WRITE, B tb2 WRITE; INSERT INTO A (id) VALUES ((SELECT 1 FROM B tb1)), ((SELECT 2 FROM B tb2)); UNLOCK TABLES;

¿Qué causa el error en el primer caso?


Editar: simplifiqué el ejemplo nuevamente al mínimo.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda