gpt4 book ai didi

mysql - 为什么我不能删除 MySql 表上的这个外键约束?

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:52 26 4
gpt4 key购买 nike

我不是很喜欢数据库,我有以下问题。我正在使用 MySql

我有一个结果表,由这个DDL语句描述:

CREATE TABLE results (
id BigInt(20) UNSIGNED NOT NULL AUTO_INCREMENT,
sample_id BigInt(20) UNSIGNED NOT NULL,
genus VarChar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
doi NVarChar(128) COLLATE utf8_general_ci,
result NVarChar(2) COLLATE utf8_general_ci NOT NULL,
error Text CHARACTER SET utf8 COLLATE utf8_general_ci,
PRIMARY KEY (
id
)
) ENGINE=InnoDB AUTO_INCREMENT=3 ROW_FORMAT=DYNAMIC DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE results COMMENT = '';
ALTER TABLE results ADD CONSTRAINT fk_results_pgrfas FOREIGN KEY (sample_id)
REFERENCES pgrfas (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
CREATE INDEX fk_results_pgrfas
ON results(sample_id);

如您所见,此表定义了一个FOREIGN KEY 约束,将results 表与另一个名为pgrfas 的表绑定(bind)在一起。

我必须删除这个外键约束,我试过这个语句:

alter table results drop foreign key fk_results_pgrfas

但是它不起作用,MySql 给我返回这个错误信息:

#42000Can't DROP 'fk_results_pgrfas'; check that column/key exists

怎么了?我错过了什么?如何正确删除此 FK?

编辑 1:声明:

SHOW CREATE TABLE results;

返回:

CREATE TABLE `results` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`sample_id` bigint(20) unsigned NOT NULL,
`genus` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`doi` varchar(128) CHARACTER SET utf8 DEFAULT NULL,
`result` varchar(2) CHARACTER SET utf8 NOT NULL,
`error` text CHARACTER SET utf8,
PRIMARY KEY (`id`),
KEY `fk_results_pgrfas` (`sample_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

那是什么意思呢?删除了吗?但是这个部分是什么意思:

KEY `fk_results_pgrfas` (`sample_id`)

最佳答案

检查结果和 pgrfas 表:

SELECT * FROM results;
SELECT * FROM pgrfas;

如果可以,请从表中删除值。

运行 SHOW CREATE TABLE 并验证外键名称是否正确。删除外键

ALTER TABLE results DROP FOREIGN KEY fk_results_pgrfas;

您创建了一个与您的外键同名的索引。

我相信这没有关系,但如果您有问题,请尝试删除您的索引,然后删除外键。
删除关联的 INDEX:

DROP INDEX fk_results_pgrfas ON results;

关于mysql - 为什么我不能删除 MySql 表上的这个外键约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685950/

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