OnDelete和OnUpdate都有Restrict漏益,No Action, Cascade,Set Null屬性」檬铮現(xiàn)在分別對他們的屬性含義做個解釋。
ON DELETE
restrict(約束):當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵燕偶,如果有則不允許刪除。
no action:意思同restrict.即如果存在從數(shù)據(jù)础嫡,不允許刪除主數(shù)據(jù)指么。
cascade(級聯(lián)):當在父表(即外鍵的來源表)中刪除對應記錄時酝惧,首先檢查該記錄是否有對應外鍵,如果有則也刪除外鍵在子表(即包含外鍵的表)中的記錄伯诬。
set null:當在父表(即外鍵的來源表)中刪除對應記錄時晚唇,首先檢查該記錄是否有對應外鍵,如果有則設置子表中該外鍵值為null(不過這就要求該外鍵允許取null)
ON UPDATE
restrict(約束):當在父表(即外鍵的來源表)中更新對應記錄時盗似,首先檢查該記錄是否有對應外鍵哩陕,如果有則不允許更新。
no action:意思同restrict.
cascade(級聯(lián)):當在父表(即外鍵的來源表)中更新對應記錄時赫舒,首先檢查該記錄是否有對應外鍵悍及,如果有則也更新外鍵在子表(即包含外鍵的表)中的記錄。
set null:當在父表(即外鍵的來源表)中更新對應記錄時接癌,首先檢查該記錄是否有對應外鍵心赶,如果有則設置子表中該外鍵值為null(不過這就要求該外鍵允許取null)。
注:NO ACTION和RESTRICT的區(qū)別:只有在及個別的情況下會導致區(qū)別缺猛,前者是在其他約束的動作之后執(zhí)行园担,后者具有最高的優(yōu)先權(quán)執(zhí)行。