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.