sol*_*mon 25 mysql foreign-keys foreign-key-relationship mysql-error-1025
我想在我的表中删除外键但是已经进入此错误消息
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>
Run Code Online (Sandbox Code Playgroud)
bbr*_*ame 33
Chris White在这里描述的解决方案为我工作.
根本问题是MySQL创建索引和外键.两者都必须删除(外键首先与克里斯所说的相反).
show create table table_name;
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`), <--- shows key name
CONSTRAINT `table_name_ibfk_1` FOREIGN KEY (`key_column`) REFERENCES <--- shows foreign key constraint name
`second_table` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
Run Code Online (Sandbox Code Playgroud)删除外键约束:
ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
Run Code Online (Sandbox Code Playgroud)删除密钥
ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
Run Code Online (Sandbox Code Playgroud)这样做对我来说.
它看起来像是MySQL错误消息中的一个错误.(http://bugs.mysql.com/bug.php?id=10333)
使用SHOW CREATE TABLE table_name
查看外键的实际名称.在生成具有错误拼写外键名称的查询时,看起来可能是mysql查询浏览器问题.
若要避免在尝试删除外键时出现此错误,请使用约束名称而不是外键的列名称.
当我尝试
mysql> ALTER TABLE mytable DROP PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)
我得到了错误
ERROR 1025 (HY000): Error on rename of '.\database\#sql-454_3' to '.\database\mytable' (errno: 150).
Run Code Online (Sandbox Code Playgroud)
我解决了它:
mysql> ALTER TABLE mytable DROP PRIMARY KEY, ADD PRIMARY KEY (column1,column2,column3);
Run Code Online (Sandbox Code Playgroud)
一些可以帮助您的链接.
链接2 [寻找发布者Alex Blume于2008年11月7日下午5:09&发布者Hector Delgadillo于2011年1月21日上午4:57发表]
归档时间: |
|
查看次数: |
26809 次 |
最近记录: |