MySQL删除外键约束问题

当我们在一个表中添加字段约束的时候:

ALTER TABLE product ADD CONSTRAINT product_fk FOREIGN KEY(category_id) REFERENCES category(id);

会认为我的外键约束名称为product_fk, 然后当我们想删除时:

ALTER TABLE product DROP FOREIGN KEY product_fk;

会出现以下的错误:

<e>Query: alter table product drop foreign key product_fk

Error Code: 1025
Error on rename of '.\web_day09\product' to '.\web_day09\#sql2-2330-1' (errno: 152)

 

这是因为字段的外键约束名并不是product_fk 。

 

我们在数据库中执行一下命令:

SHOW CREATE TABLE product

控制台会显示:

复制代码
Table    Create Table
product    CREATE TABLE `product` (
  `pid` varchar(32) NOT NULL,
  `pname` varchar(40) DEFAULT NULL,
  `price` double DEFAULT NULL,
  `category_id` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`pid`),
  KEY `category_id` (`category_id`),
  CONSTRAINT `product_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
复制代码

 

从建表语句中我们发现外键约束名称是:

product_ibfk_1

然后我们再执行外键删除操作:

<n>Query: alter table product drop foreign key product_ibfk_1

0 row(s) affected

删除成功。

posted @   乖怪丶  阅读(1020)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
欢迎这位客官来到《MySQL删除外键约束问题 - 乖怪丶 - 博客园》
点击右上角即可分享
微信分享提示