sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Configurar relaciones de tablas, ¿qué hacen Cascade, Set Null y Restrict?

CASCADE propagará el cambio cuando el padre cambie. (Si elimina una fila, las filas de las tablas restringidas que hacen referencia a esa fila también se eliminarán, etc.)

SET NULL establece el valor de la columna en NULL cuando una fila principal desaparece.

RESTRICT hace que falle el intento de ELIMINAR de una fila principal.

EDITAR:no preguntó por ellos, pero el estándar SQL define otras dos acciones:SET DEFAULT y NO ACTION . En MySQL, NO ACTION es equivalente a RESTRICT . (En algunos DBMS, NO ACTION es una comprobación diferida, pero en MySQL todas las comprobaciones son inmediatas). El analizador de MySQL acepta SET DEFAULT , pero los motores InnoDB y NDB rechazan esas declaraciones, por lo que SET DEFAULT en realidad no se puede usar para ON UPDATE o ON DELETE restricción.

Además, tenga en cuenta que las acciones de clave externa en cascada no activan los disparadores en MySQL.