簡體   English   中英

我不能在 mysql 中刪除外鍵

[英]I can't drop foreign key in mysql

create table A(id int(9),id2 int(5),primary key(id))engine=innodb;
create table B(ide int(9),ide2 int(5))engine=innodb;
desc B;
alter table B add constraint ide3 foreign key(ide) references A(id);
desc B;
alter table B drop foreign key ide3;
desc B;

第一個“desc”命令中沒有鍵。 “MUL”寫在第二個“desc”命令的鍵列中。 “MUL”仍然寫在第三個“desc”命令的鍵列中。 沒有錯誤,但密鑰仍然存在,我做錯了什么?

每個外鍵都需要一個可以支持外鍵檢查的索引。 當你創建一個外鍵約束,而你沒有這樣的索引時,MySQL 會為你創建它。 當您刪除外鍵約束時,索引將保留。 如果您希望刪除該索引,則需要明確地執行此操作。

create table A(id int(9),id2 int(5),primary key(id))engine=innodb;

create table B(ide int(9),ide2 int(5))engine=innodb;

alter table B add constraint ide3 foreign key(ide) references A(id);

alter table B drop foreign key ide3;

alter table B drop index ide3; -- add this line

演示: http : //rextester.com/BFKCL96974

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM