CASCADE
親が変更されたときに変更を伝播します。 (行を削除すると、その行を参照する制約付きテーブルの行も削除されます。など)
SET NULL
親行がなくなると、列の値をNULLに設定します。
RESTRICT
親行のDELETEの試行は失敗します。
編集:あなたはそれらについて尋ねませんでしたが、SQL標準は他の2つのアクションを定義しています:SET DEFAULT
およびNO ACTION
。 MySQLでは、NO ACTION
RESTRICT
と同等です 。 (一部のDBMSでは、NO ACTION
は遅延チェックですが、MySQLではすべてのチェックが即時に行われます。)MySQLパーサーはSET DEFAULT
を受け入れます。 、ただし、InnoDBエンジンとNDBエンジンの両方がこれらのステートメントを拒否するため、SET DEFAULT
ON UPDATE
のどちらにも実際には使用できません またはON DELETE
制約。
また、カスケード外部キーアクションはMySQLのトリガーをアクティブにしないことに注意してください。