gpt4 book ai didi

mysql - 删除带有外键的列

转载 作者:可可西里 更新时间:2023-11-01 07:04:51 25 4
gpt4 key购买 nike

在我的带有 inno_db 引擎的 mysql 数据库上,

我有一个带有外键的表。我想删除该列(当然连同外键和关联的索引 - 我不需要整个列!)

现在,简单地删除它会产生一个错误:一般错误:1025 将“.\road_dmy#sql-19d8_2be”重命名为“.\road_dmy\contact”时出错(错误号:150)

听起来这是一个已知问题。 http://bugs.mysql.com/bug.php?id=15317

但是无论如何,我应该如何删除此专栏?我非常确定否则可能没有人会使用这个数据库

(顺便说一句,我怎么知道上面神秘错误消息的真实细节?)

最佳答案

您必须先放下 key 。我不知道您的表的名称,但我会通过示例为您提供一般策略。假设您有以下 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;

您可以使用以下命令删除表 B 中的 a_id 列:

alter table B drop foreign key b_ibfk_1, drop column a_id;

关于mysql - 删除带有外键的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5589355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com