CASCADE
propagherà la modifica quando cambia il genitore. (Se elimini una riga, verranno eliminate anche le righe nelle tabelle vincolate che fanno riferimento a quella riga, ecc.)
SET NULL
imposta il valore della colonna su NULL quando una riga padre scompare.
RESTRICT
fa fallire il tentativo di DELETE di una riga padre.
EDIT:non hai chiesto informazioni su di loro, ma lo standard SQL definisce altre due azioni:SET DEFAULT
e NO ACTION
. In MySQL, NO ACTION
è equivalente a RESTRICT
. (In alcuni DBMS, NO ACTION
è un controllo differito, ma in MySQL tutti i controlli sono immediati.) Il parser MySQL accetta SET DEFAULT
, ma entrambi i motori InnoDB e NDB rifiutano tali istruzioni, quindi SET DEFAULT
in realtà non può essere utilizzato nemmeno per un ON UPDATE
o ON DELETE
vincolo.
Inoltre, nota che le azioni di chiave esterna a cascata non attivano i trigger in MySQL.