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

MySQL em cascata de exclusão. Exemplo de teste


Resposta D. está correto, se e somente se o mecanismo de armazenamento realmente suporta e impõe restrições de chave estrangeira.

Se as tabelas forem criadas com Engine=MyISAM , então nem b. ou D. está correto.

Se as tabelas forem criadas com Engine=InnoDB , então d. está correto.

NOTA:

Isso é verdade para InnoDB se e somente se FOREIGN_KEY_CHECKS = 1; se FOREIGN_KEY_CHECKS = 0 , então um DELETE da tabela pai (foo) não remova as linhas da tabela filha (foo2) que fazem referência a uma linha removida da tabela pai.

Verifique isso com a saída de SHOW VARIABLES LIKE 'foreign_key_checks' (1=ON, 0=OFF)(O padrão normal é que seja ON.)

A saída de SHOW CREATE TABLE foo mostrará qual mecanismo a tabela usa.

A saída de SHOW VARIABLES LIKE 'storage_engine' mostrará o mecanismo padrão usado quando uma tabela é criada e o mecanismo não é especificado.