MySQL新增外來鍵

2021-07-31 09:50:54 字數 1893 閱讀 5637

為已經建立的資料表新增外來鍵

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

例: alter table tb_active add constraint fk_tbactive_tbuser_id foreign key(user_id) references tb_user(id)

create

table

`tb_active`(

`id`

int(11) not

null auto_increment,

`title`

varchar(100) character

set utf8 collate utf8_unicode_ci not

null,

`content` text character

set utf8 collate utf8_unicode_ci not

null,

`user_id`

int(11) not

null,

primary

key (`id`),

key`user_id` (`user_id`),

constraint

`fk_id`

foreign

key (`user_id`) references

`tb_user` (`id`)

)engine=innodb default charset=latin1

刪除外來鍵

語法: alter table table_name drop foreign key key_id;

例: alter tabletb_activedrop foreign keyfk_id

自動鍵更新和刪除:

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

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

關鍵字含義

cascade

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

set null

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

restrict

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

no action

什麼也不做

新增外來鍵

alter table locstock add foreign key locstock_ibfk(stockid) references product(stockid)

locstock 為表名, locstock_ibfk為外鍵名 第乙個括號裡填寫外來鍵列名, product為表名,第二個括號裡是寫外來鍵關聯的列名

刪除外來鍵

alter table locstock drop foreign key locstock_ibfk

檢視表有哪些外來鍵

show create table locstock

[constraint symbol] foreign key [id] (index_col_name, …)

references tbl_name (index_col_name, …)

[on delete ]

[on update ]

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...