MySQL新增外來鍵的方法

2022-07-21 10:39:52 字數 1419 閱讀 8163

為book表新增外來鍵:

《1》明確指定外來鍵的名稱:

語法:alter table 表名 add constraint 外來鍵的名稱 foreign key(你的外來鍵欄位名) references 外表表名(對應的表的主鍵欄位名);

alter table book add constraint fk_book foreign key(pubid) references pub_com(id) on delete restrict on update restrict;

《2》不指定外來鍵的名稱,mysql會自動為你建立乙個外來鍵名稱:alter table book add foreign key(pubid) referencespub_com(id) on delete restrict on update restrict;

使用:show create table book;命令可檢視

自動鍵更新和刪除:

外來鍵可以保證新插入的記錄的完整性,但是,如果在references從句中已命名的表刪除記錄會怎麼樣?在使用同樣的值作為外來鍵的輔助表中會發生什麼?

很明顯,那些記錄也應該被刪除,否則在資料庫中就會有很多無意義的孤立記錄,mysql可以通過向foreign key...references修飾符新增乙個ondelete或on update子句簡化任務,它告訴了資料庫在這種情況如何處理孤立任務

關鍵字     含義

cascade    刪除包含與已刪除鍵值有參照關係的所有記錄

set null   修改包含與已刪除鍵值有參照關係的所有記錄,使用null值替換(只能用於已標記為not null的字段)

restrict   拒絕刪除要求,直到使用刪除鍵值的輔助表被手工刪除,並且沒有參照時(這是預設設定,也是最安全的設定)

no action  啥也不做

請注意,通過on update 和 ondelete規則,設定mysql能夠實現自動操作時,如果鍵的關係沒有設定好,可能會導致嚴重的資料破壞,

例如:如果一系列的表通過外來鍵關係和ondeletecascade 規則連線時,任意乙個主表的變化都會導致甚至只和原始刪除有一些將要聯絡的記錄在沒有警告的情況被刪除,所以,我們在操作之前還要檢查這些規則的,操作之後還要再次檢查.

mysql新增外來鍵

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

mysql新增外來鍵

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

mysql新增外來鍵

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