O que você está tentando fazer aqui? Bloqueios no MySQL podem ser um pouco confusos se você fizer suposições sobre o que acha que eles fazem.
- Um bloqueio READ permite que a sessão com o bloqueio leia e outras sessões leiam, mas não escrevem.
- Um bloqueio WRITE permite que a sessão com o bloqueio leia e grave e outras sessões sem acesso.
A sintaxe FLUSH TABLES
não permite que você especifique uma lista de tabelas , além de adquirir um bloqueio. FLUSH TABLES WITH READ LOCK
bloqueia todas as tabelas. FLUSH TABLES <tables>
irá liberar essas tabelas. Há algum bloqueio implícito envolvido nas tabelas de liberação, já que novas gravações não podem ir para uma tabela enquanto ela está sendo liberada, mas esse bloqueio implícito é liberado assim que o flush é concluído.
Se você deseja bloquear tabelas específicas com um bloqueio de gravação, LOCK TABLES <table> WRITE
é o que você deseja. Você pode fornecer uma lista de tabelas delimitada por vírgulas aqui. Se você quiser bloquear todas as tabelas, precisará fornecer a lista inteira.