Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

322
Visualizações
LOCK TABLES does not work as expected with multiple tables

I try to understand why there is an error in the following case stating that a table was "not locked" even though a (WRITE) LOCK was issued just before.

This is the setup (MySQL / MariaDB):

CREATE TABLE A
(
    id INT
);

CREATE TABLE B
(
    id INT
);

Here are the cases (first one being the failing one):

# 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;

What causes the error in the first case?


Edit: I simplified the example again to the bare minimum.

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda