我想删除表中的外键,但已进入此错误消息
mysql> alter table customers drop foreign key customerid;
ERROR 1025 (HY000): Error on rename of '.\products\customers' to '.\products\#sql2-7ec-a3' (errno: 152)
mysql>发布于 2012-05-17 17:34:37
若要避免在尝试删除外键时出现此错误,请使用约束名称,而不是外键的列名。
当我试着
mysql> ALTER TABLE mytable DROP PRIMARY KEY;我收到了错误,因为
ERROR 1025 (HY000): Error on rename of '.\database\#sql-454_3' to '.\database\mytable' (errno: 150).我用以下命令解决了这个问题:
mysql> ALTER TABLE mytable DROP PRIMARY KEY, ADD PRIMARY KEY (column1,column2,column3);一些对你有帮助的链接。
link 2 look由Alex Blume于2008年11月7日下午5:09发布,由Hector Delgadillo于2011年1月21日发布,凌晨4:57
发布于 2014-02-05 05:18:46
here by Chris White描述的解决方案对我很有效。
根本问题是MySQL同时创建了索引和外键。两者都必须删除(外键首先与Chris所说的相反)。
表显示create
SHOW CREATE TABLE table\_name:| table_name | CREATE TABLE table\_name ( id int(20) unsigned NOT NULL auto_increment,key\_column smallint(5) unsigned default '1',key column\_tablein\_26440ee6 (key\_column),<-显示键名称约束table\_name\_ibfk\_1外键(key\_column)引用<-显示外键约束名称second\_table (id) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
ALTER TABLE table_name DROP FOREIGN KEY table\_name\_ibfk\_1;
ALTER TABLE table_name DROP KEY column\_tablein\_26440ee6;
这对我来说就够了。
发布于 2012-05-17 17:04:33
它看起来像是MySQL的错误消息中的一个错误。(http://bugs.mysql.com/bug.php?id=10333)
使用SHOW CREATE TABLE table_name查看外键的实际名称。在生成外键名称拼写错误的查询时,看起来可能是mysql查询浏览器的问题。
https://stackoverflow.com/questions/10632587
复制相似问题