Mysql 為表新增外來鍵約束

2021-10-24 10:12:22 字數 933 閱讀 6306

sql語句格式:

· 新增外來鍵約束:alter table 從表 add constraint 外來鍵(形如:fk_從表_主表) foreign key (從表外來鍵字段) references 主表(主鍵字段);

如果mysql報錯:error code: 1215. cannot add foreign key constraint (foreign keys)

檢查 主從表兩個欄位的屬性是否一致

將member表id鍵改為bigint:alter table member modify column id bigint;

執行時發現如下錯誤:

error 1025 (hy000): error on rename of 『.\test\#sql-c68_10』 to 『.\test\member』 (errno: 150)

原因:

member表的id主鍵欄位是另外一張address的外來鍵,修改主表id欄位型別會導致主表與外來鍵關聯表字段不一致。

解決方法:

找到外來鍵關聯表,找到外鍵名字。

刪除外來鍵約束

修改主表(member)id欄位型別:alter table member modify column id bigint;

修改輔表(address)member_id欄位型別:alter table address modify column member_id bigint;

將刪除的外來鍵補上:alter table address add constraint fk_member_address foreign key (member_id) references member(id);

Mysql新增外來鍵約束

最近學習遇到一條新增外來鍵約束的語句,記錄下來.alter table selection add constraint fk reference 1 foreign key course references course id on delete restrict on update restr...

為mysql資料表新增外來鍵

restrict 只要本 裡面有指向主表的資料,在主表裡面就無法刪除相關記錄。一般來說,就選restrict最安全,當然也根據具體的業務而言了.cascade很cool,但是資料譁的一下就沒了.cascade 如果在foreign key 所指向的那個表裡面刪除一條記錄,那麼在此表裡面的跟那個key...

改變表已新增約束 外來鍵

alter table dbo employee with nocheck add constraint df employee job id 1b0907ce default 1 for job id constraint df employee job lv 1cf15040 default 1...