如何在mysql中删除外键?

3

我尝试了两种语法:

Alter Table bc DROP FOREIGN KEY STUD_ID;

它正在显示错误:无法删除'STUD_ID'; 请检查列/键是否存在

Alter Table bc DROP CONSTRAINT STUD_ID;

它报错了:

错误1064(42000):您的SQL语法存在错误;请检查与您的MySQL服务器版本对应的手册,了解使用正确语法的方法,“CONSTRAINT STUD_ID”附近的位置在第1行

请给我建议可能的解决方案。


第一个查询没问题。你的键可能与它索引的列名不同。运行 show index from bc - juergen d
你好,我在第一条查询中没有看到任何问题。请问您能上传您的表格吗? - Muhammad Umar
@juergend 完成了。谢谢! - XYZ
3个回答

1
ALTER TABLE TableName DROP FOREIGN KEY ForeignKeyConstraintName;

希望这有所帮助 :)

0

你的第一个查询有效。它告诉你没有这样的键要删除。这意味着你的键有另一个名称。它的名称不同于它索引的列名。运行

show index from bc

显示所有键名,然后使用正确的名称再次运行您的查询

Alter Table bc DROP FOREIGN KEY <STUD_ID_index_name>

-1
alter table bc drop foreign key forconstraintname

1
即使我的评论包含的信息比那还要多。 - juergen d
虽然这段代码片段很受欢迎,可能会提供一些帮助,但如果它包括了解释如何解决问题的说明,那将会大有改进。没有这个,你的答案就会少很多教育价值 - 记住,你正在回答未来读者的问题,而不仅仅是现在提问的人!请编辑你的答案添加解释,并指出适用的限制和假设。 - Toby Speight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接