sql >> Base de Datos >  >> RDS >> Mysql

MySQL en cascada de eliminación. Ejemplo de prueba

respuesta es correcto, si y solo si el motor de almacenamiento admite y aplica restricciones de clave externa.

Si las tablas se crean con Engine=MyISAM , entonces tampoco b. o d. es correcto.

Si las tablas se crean con Engine=InnoDB , luego d. es correcto.

NOTA:

Esto es cierto para InnoDB si y solo si FOREIGN_KEY_CHECKS = 1; si FOREIGN_KEY_CHECKS = 0 , luego un DELETE de la tabla principal (foo) no eliminar filas de la tabla secundaria (foo2) que hacen referencia a una fila eliminada de la tabla principal.

Verifique esto con la salida de SHOW VARIABLES LIKE 'foreign_key_checks' (1=ENCENDIDO, 0=APAGADO)(El valor predeterminado normal es que esté ENCENDIDO).

La salida de SHOW CREATE TABLE foo mostrará qué motor usa la tabla.

La salida de SHOW VARIABLES LIKE 'storage_engine' mostrará el motor predeterminado utilizado cuando se crea una tabla y no se especifica el motor.