MySQL删除外键问题小结

日期:2016/9/28 14:39:00 来源:本网整理 阅读:0
s">

MySQL删除外键问题小结

作者:wangle100wangle 字体:[增加 减小] 类型:转载 时间:2016-08-18 我要评论

mysql删除外键抱错Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 (errno: 152),怎么回事,有好的方法可以解决吗?下面看下突袭网小编给大家带来的解决思路
">

MySQL:MySQL不能删除外键,抱错Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 (errno: 152)

曾经这是MySQL的一个bug,但是现在只是MySQL的一个不友好的地方。

例子如下:

mysql> ALTER TABLE ruler.test2child DROP FOREIGN KEY test;
ERROR 1025 : Error on rename of ''./ruler/test2child'' to ''./ruler/#sql2-298-8f'' (errno:
152)

这里并不是不能删除外键,而是使用了错误的外键名称,但是MySQL报的错实在离谱。
正确的错误信息要如下查询才能知道:

mysql> show innodb status; 
------------------------
LATEST FOREIGN KEY ERROR
------------------------
071222 20:48:26 Error in dropping of a foreign key constraint of table
"ruler"."test2child",
in SQL command
ALTER TABLE ruler.test2child DROP FOREIGN KEY test
Cannot find a constraint with the given id "test".

另外外键的其他操作也有类似情况:

比如外键 新建报错:

Can''t create table ''ruler.#sql-298_92'' (errno: 150)
show innodb status; 
------------------------
LATEST FOREIGN KEY ERROR
------------------------
071222 20:18:57 Error in foreign key constraint of table ruler/#sql-298_8d:
 FOREIGN KEY (test2code) REFERENCES ruler.test2 (test) on delete set null:
You have defined a SET NULL condition though some of the
columns are defined as NOT NULL.

测试数据库版本为:

5.2.0-falcon-alpha-community-nt

删除外键的做法:

//先删除外键名,再删外键字段(mysql官方提供)

例:

alter table task drop foreign key FK_Reference_7;
alter table task drop column `assigned`;

以上所述是小编给大家介绍的MySQL删除外键问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对突袭网网站的支持!

  • 本文相关:
  • MySQL binlog中的事件类型详解
  • Mysql 自定义随机字符串的实现方法
  • MySQL5.7 windows二进制安装教程
  • MySQL5.6下windows msi安装详细介绍
  • MySql登录时闪退的快速解决办法
  • MySQL为例讲解JDBC数据库连接步骤
  • Mysql 1864 主从错误解决方法
  • wampserver下mysql导入数据库的步骤
  • MySQL多表数据记录查询详解
  • Mysql删除重复的数据 Mysql数据去重复
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved