CASCADE
kommer att sprida förändringen när föräldern ändras. (Om du tar bort en rad kommer rader i begränsade tabeller som refererar till den raden också att tas bort, etc.)
SET NULL
ställer in kolumnvärdet till NULL när en överordnad rad försvinner.
RESTRICT
gör att försöket att radera en överordnad rad misslyckas.
EDIT:Du frågade inte om dem, men SQL-standarden definierar två andra åtgärder:SET DEFAULT
och NO ACTION
. I MySQL, NO ACTION
motsvarar RESTRICT
. (I vissa DBMS, NO ACTION
är en uppskjuten kontroll, men i MySQL är alla kontroller omedelbara.) MySQL-parsern accepterar SET DEFAULT
, men både InnoDB- och NDB-motorerna avvisar dessa påståenden, så SET DEFAULT
kan faktiskt inte användas för antingen en ON UPDATE
eller ON DELETE
begränsning.
Observera också att kaskadande främmande nyckelåtgärder inte aktiverar utlösare i MySQL.