she*_*iel 5 mysql mysql-error-1025 sql-drop
在我的mysql数据库上使用inno_db引擎,
我有一张带外键的桌子.我想删除列(当然还有外键和相关索引 - 我不需要整列!)
现在,简单地删除它会产生错误:一般错误:1025错误将'.\ road_dmy#sql-19d8_2be'重命名为'.\ road_dmy\contact'(错误号:150)
听起来这是一个众所周知的问题. http://bugs.mysql.com/bug.php?id=15317
但无论如何,我应该怎么做才能放弃这个专栏?我非常确定没有人会使用这个DB
(顺便说一下,我怎么知道上面神秘错误信息的真实细节?)
你必须先放下钥匙.我不知道你的牌桌的名字,但我会通过例子给你一般的策略.假设您有以下2个InnoDB表:
CREATE TABLE `A` (
`id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `B` (
`id` int(10) unsigned NOT NULL auto_increment,
`a_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `a_id` (`a_id`),
CONSTRAINT `b_ibfk_1` FOREIGN KEY (`a_id`) REFERENCES `a` (`id`)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令删除a_id表中的列B:
alter table B drop foreign key b_ibfk_1, drop column a_id;
Run Code Online (Sandbox Code Playgroud)