欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL外鍵約束的刪除和更新總結(jié)

 更新時間:2024年02月18日 09:55:03   作者:Aileen_0v0  
這篇文章主要給大家總結(jié)MySQL外鍵約束的刪除和更新,文中通過代碼示例和圖文介紹的非常詳細(xì),對大家了解MySQL外鍵約束有一定的幫助,需要的朋友可以參考下

外鍵約束

外鍵約束的刪除/更新行為

行為說明
NO ACTION當(dāng)在父表中刪除/更新對應(yīng)記錄時,首先檢查該記錄是否有對應(yīng)外鍵,如果有則不允許刪除/更新。(與RESTRICT一致)
RESTRICT當(dāng)在父表中刪除/更新對應(yīng)記錄時,首先檢查該記錄是否有對應(yīng)外鍵,如果有則不允許刪除/更新。(與NOT ACTION一致)
CASCADE當(dāng)在父表中刪除/更新對應(yīng)記錄時,首先檢查該記錄是否有對應(yīng)外鍵,如果有,則也刪除/更新外鍵在子表總的記錄。
SET NULL當(dāng)在父表中刪除對應(yīng)記錄時,首先檢查該記錄是否有對應(yīng)外鍵,如果有則設(shè)置該子表中該外鍵值為null(這就要求該外鍵允許取null)。
SET DEFAULT父表有變更時,子表將外鍵列設(shè)置為一個默認(rèn)的值(innodb不支持)

alter table 表名 add constraint 外鍵名稱 references 主表名(主表字段名) on update cascade on delete cascade

-- 添加外鍵約束并指定外鍵的刪除和更新行為
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade ;

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

將父表dept中的研發(fā)部的id改為6,emp表中的id也會跟著改變

在這里插入圖片描述

當(dāng)我們刪除父表中id為6,我們可以看到子表emp中存在外鍵關(guān)聯(lián)的數(shù)據(jù)也會被刪除。 說明:如果子表與父表存在外鍵關(guān)聯(lián),刪除父表的數(shù)據(jù)也會影響子表。

在這里插入圖片描述

演示2:

現(xiàn)在我們先刪除剛剛創(chuàng)建的emp和dept這兩張表,然后重新創(chuàng)建。然后通過命令行進行emp表的外鍵的添加。

-- 添加外鍵約束并指定外鍵的刪除和更新行為

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null ;

測試:

刪除dept表中的第一行,然后刷新,我們可以看到emp表中的id為1的數(shù)據(jù)全部置為null了。

在這里插入圖片描述

在這里插入圖片描述

通過圖形化界面創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

選中預(yù)修改的表,然后點擊modify table,再點擊foreign keys ,雙擊命令,我們可以在這里修改更新和刪除的規(guī)則,改完以后點擊execute執(zhí)行即可.

總結(jié)

在這里插入圖片描述

以上就是MySQL外鍵約束的刪除和更新總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于MySQL外鍵約束的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論