目錄
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 建立外來鍵的前提 ...