Mysql外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL
今天在使用Navicat for mysql設計表時,在設置外鍵的時候,刪除時和更新時兩列有四個值可以選擇:CASCADE、NO ACTION、RESTRICT、SET NULL,自己全親自試了一遍,它們的區(qū)別如下:
- CASCADE:父表delete、update的時候,子表會delete、update掉關(guān)聯(lián)記錄;
- SET NULL:父表delete、update的時候,子表會將關(guān)聯(lián)記錄的外鍵字段所在列設為null,所以注意在設計子表時外鍵不能設為not null;
- RESTRICT:如果想要刪除父表的記錄時,而在子表中有關(guān)聯(lián)該父表的記錄,則不允許刪除父表中的記錄;
- NO ACTION:同 RESTRICT,也是首先先檢查外鍵;
空、RESTRICT、NO ACTION | 刪除:從表記錄不存在時,主表才可以刪除,刪除從表,主表不變。 更新:從表記錄不存在時,主表菜可以更新,更新從表,主表不變。 |
CASCADE | 刪除:刪除主表時自動刪除從表。刪除從表,主表不變。 更新:更新主表時自動更新從表。更新從表,主表不變。 |
SET NULL | 刪除:刪除主表時自動更新從表為NULL,刪除從表,主表不變。 更新:更新主表時自動更新從表值為NULL。更新從表,主表不變。 |
下面舉一個小例子幫助理解:
(1)在數(shù)據(jù)庫bookshop中我新建了表a如下:
設置外鍵:
(2)在數(shù)據(jù)庫bookshop中我新建了表b如下:
(3)給a、b表插入記錄如下:
這里:a表id2字段為外鍵字段,參看b表的主鍵,所以b表是父表,a表是子表;然后分別在設置a表外鍵的時候設置不同的四個值,就可以得出我上述的結(jié)論。
到此這篇關(guān)于Mysql外鍵設置中的CASCADE、NO ACTION、RESTRICT、SET NULL的文章就介紹到這了,更多相關(guān)Mysql CASCADE NO ACTION RESTRICT SET NULL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows10下mysql 8.0.12解壓版安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Windows10下mysql 8.0.12解壓版安裝方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08MySQL開發(fā)中存儲函數(shù)與觸發(fā)器使用示例
這篇文章主要為大家詳細介紹了MySQL中存儲函數(shù)的創(chuàng)建與觸發(fā)器的設置,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下2023-01-01insert和select結(jié)合實現(xiàn)"插入某字段在數(shù)據(jù)庫中的最大值+1"的方法
今天小編就為大家分享一篇關(guān)于insert和select結(jié)合實現(xiàn)"插入某字段在數(shù)據(jù)庫中的最大值+1"的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03登錄MySQL數(shù)據(jù)庫最快幾步(圖文步驟詳解)
當?MySQL?服務開啟后,就可以通過客戶端來登錄?MySQL?數(shù)據(jù)庫了。在?Windows?操作系統(tǒng)下可以使用?DOS?命令登錄數(shù)據(jù)庫,本節(jié)將介紹使用命令方式登錄?MySQL?數(shù)據(jù)庫的方法2023-10-10MySQL將一個字段中以逗號分隔的取出來形成新的字段實現(xiàn)
這篇文章主要介紹了MySQL將一個字段中以逗號分隔的取出來形成新的字段實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10mysql觸發(fā)器之創(chuàng)建多個觸發(fā)器操作實例分析
這篇文章主要介紹了mysql觸發(fā)器之創(chuàng)建多個觸發(fā)器操作,結(jié)合實例形式分析了mysql創(chuàng)建及使用多個觸發(fā)器的相關(guān)操作技巧,需要的朋友可以參考下2019-12-12