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

No MySQL, posso adiar as verificações de integridade referencial até o commit


Parece que minha resposta está aqui ...

Como o MySQL em geral, em uma instrução SQL que insere, exclui ou atualiza muitas linhas, o InnoDB verifica as restrições UNIQUE e FOREIGN KEY linha por linha. Ao realizar verificações de chave estrangeira, o InnoDB define bloqueios compartilhados em nível de linha em registros filho ou pai que ele deve examinar. O InnoDB verifica as restrições de chave estrangeira imediatamente; a verificação não é adiada para confirmação da transação. De acordo com o padrão SQL, o comportamento padrão deve ser a verificação adiada. Ou seja, as restrições só são verificadas após o processamento de toda a instrução SQL. Até que o InnoDB implemente a verificação de restrição adiada, algumas coisas serão impossíveis, como excluir um registro que se refere a si mesmo usando uma chave estrangeira.

De volta à prancheta.