Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O MySql bloqueia linhas automaticamente ou preciso adicionar bloqueio no modo de compartilhamento?


Eu acho que, com base em suas respostas aos meus comentários, você realmente não precisa se preocupar em manipular manualmente os bloqueios de tabela. O InnoDB suporta bloqueio em nível de linha e com autocommit habilitado (como é por padrão) todas as consultas individuais são realmente tratadas de maneira transacional.

Agora, se você tiver várias consultas SQL que precisam ser tratadas como uma única transação (ou seja, atualizar uma tabela e atualizar outra tabela - ambas são bem-sucedidas ou ambas são revertidas), você precisaria iniciar especificamente uma transação e confirmá-la ou reverta-o após as consultas provisórias terem sido executadas.

Você também pode usar SET TRANSACTION instrução se você precisar alterar o nível de isolamento da transação (é `REPEATABLE READ1 por padrão).

Para obter mais informações, consulte a Documentação do MySQL