On Delete和On Update都有Restrict,No Action, Cascade,Set Null屬性。如今分別對他們的屬性含義作個解釋。rest
ON DELETEio
restrict(約束):當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則不容許刪除。date
no action:意思同restrict.即若是存在從數據,不容許刪除主數據。數據
cascade(級聯):當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則也刪除外鍵在子表(即包含外鍵的表)中的記錄。cas
set null:當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則設置子表中該外鍵值爲null(不過這就要求該外鍵容許取null)let
ON UPDATE
restrict(約束):當在父表(即外鍵的來源表)中更新對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則不容許更新。
no action:意思同restrict.
cascade(級聯):當在父表(即外鍵的來源表)中更新對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則也更新外鍵在子表(即包含外鍵的表)中的記錄。
set null:當在父表(即外鍵的來源表)中更新對應記錄時,首先檢查該記錄是否有對應外鍵,若是有則設置子表中該外鍵值爲null(不過這就要求該外鍵容許取null)。
注:NO ACTION和RESTRICT的區別:只有在及個別的狀況下會致使區別,前者是在其餘約束的動做以後執行,後者具備最高的優先權執行。