1. 程式人生 > >MySQL外來鍵更新刪除設定cascade、set null、restrict、no action的區別

MySQL外來鍵更新刪除設定cascade、set null、restrict、no action的區別

1.首先明確一個概念,假如表A(id,name,foreign_id),表B(foreign_id,name),我們說表A參考了表B的主鍵作為其外來鍵使用,所以B表示父表,A表是子表2.刪除和更新有四種設定方式(1)cascade:級聯,當父表更新、刪除,子表會同步更新和刪除(2)set null:置空,當父表更新、刪除的時候,字表會把外來鍵欄位變為null,所以這個時候設計表的時候該欄位要允許為null,否則會出錯(3)restrict:父表在刪除和更新記錄的時候,要在子表中檢查是否有有關該父表要更新和刪除的記錄,如果有,則不允許刪除個更改(4)no action:和restrict一樣