您好,登錄后才能下訂單哦!
這篇“Mysql外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Mysql外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL是什么”文章吧。
今天在使用Navicat for mysql設計表時,在設置外鍵的時候,刪除時和更新時兩列有四個值可以選擇:CASCADE、NO ACTION、RESTRICT、SET NULL,自己全親自試了一遍,它們的區別如下:
CASCADE:父表delete、update的時候,子表會delete、update掉關聯記錄;
SET NULL:父表delete、update的時候,子表會將關聯記錄的外鍵字段所在列設為null,所以注意在設計子表時外鍵不能設為not null;
RESTRICT:如果想要刪除父表的記錄時,而在子表中有關聯該父表的記錄,則不允許刪除父表中的記錄;
NO ACTION:同 RESTRICT,也是首先先檢查外鍵;
空、RESTRICT、NO ACTION | 刪除:從表記錄不存在時,主表才可以刪除,刪除從表,主表不變。 更新:從表記錄不存在時,主表菜可以更新,更新從表,主表不變。 |
CASCADE | 刪除:刪除主表時自動刪除從表。刪除從表,主表不變。 更新:更新主表時自動更新從表。更新從表,主表不變。 |
SET NULL | 刪除:刪除主表時自動更新從表為NULL,刪除從表,主表不變。 更新:更新主表時自動更新從表值為NULL。更新從表,主表不變。 |
下面舉一個小例子幫助理解:
(1)在數據庫bookshop中我新建了表a如下:
設置外鍵:
(2)在數據庫bookshop中我新建了表b如下:
(3)給a、b表插入記錄如下:
這里:a表id2字段為外鍵字段,參看b表的主鍵,所以b表是父表,a表是子表;然后分別在設置a表外鍵的時候設置不同的四個值,就可以得出我上述的結論。
以上就是關于“Mysql外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。