MySQL外來鍵與主表關係設定說明

2021-10-06 03:45:12 字數 1097 閱讀 2106

目錄

1、使用場景

2、**實現        

3、總結

4、mysql查詢資料庫哪些表引用了相同的外來鍵表

5、參考文章

目前大型網際網路企業一般都禁止使用外來鍵;主要是通過程式控制關聯表之中外來鍵約束關係;但是一些中小企業之中開發之中還是有不少人使用外來鍵約束。下面根據實際情況說明一下設定外來鍵關係。

在設定外來鍵的時候,刪除時和更新時兩列有四個值可以選擇:cascade、no action、restrict、set null,自己全親自試了一遍,它們的區別如下:

外來鍵約束設定

空、restrict、no action

刪除:從表記錄不存在時,主表才可以刪除,刪除從表,主表不變。

更新:從表記錄不存在時,主表菜可以更新,更新從表,主表不變。

cascade

刪除:刪除主表時自動刪除從表。刪除從表,主表不變。

更新:更新主表時自動更新從表。更新從表,主表不變。

set null

刪除:刪除主表時自動更新從表為null,刪除從表,主表不變。

更新:更新主表時自動更新從表值為null。更新從表,主表不變。

個人認為建議不要使用外來鍵約束,在程式之中控制外來鍵關係;外來鍵約束後建議在表的說明備註裡面寫明操作規則。我看我們以前的人涉及的都是restrict意思必須刪除子表記錄後才能刪除主表記錄。

個人建議如果要設定,外來鍵的主表可以選擇 cascade 相對可以及時更新。根據實際情況自己選定適合場景

select * from information_schema.key_column_usage where referenced_table_name='被引用的表名'
mysql外來鍵設定中的cascade、no action、restrict、set null

mysql外來鍵設定之cascade、no action、restrict、set null

mysql 外來鍵說明 MySQL外來鍵使用及說明詳解

一 外來鍵約束 mysql通過外來鍵約束來保證表與表之間的資料的完整性和準確性。外來鍵的使用條件 1.兩個表必須是innodb表,myisam表暫時不支援外來鍵 據說以後的版本有可能支援,但至少目前不支援 2.外來鍵列必須建立了索引,mysql 4.1.2以後的版本在建立外來鍵時會自動建立索引,但如...

Mysql外來鍵設定

為已經新增好的資料表新增外來鍵 語法 alter table 表名 add constraint fk id foreign key 你的外來鍵欄位名 references 外表表名 對應的表的主鍵欄位名 例 alter table tb active add constraint fk id fo...

Mysql 外來鍵設定

外來鍵的作用 保持資料一致性,完整性,主要目的是控制儲存在外鍵表中的資料。使兩張表形成關聯,外來鍵只能引用外表中的列的值!例如 a b 兩個表 a表中存有 客戶號,客戶名稱 b表中存有 每個客戶的訂單 有了外來鍵後 你只能在確信b 表中沒有客戶x的訂單後,才可以在a表中刪除客戶x 建立外來鍵的前提 ...