1

我尝试了所有方法来截断表格,但我总是收到相同的信息:

Cannot delete or update a parent row: a foreign key constraint fails (`mybdd`.`c_member`, CONSTRAINT `fk_cm_c_id` FOREIGN KEY (`c_id`) REFERENCES `comment` (`c_id`))

在这个网站上看一些帖子我试过这个:

ALTER TABLEcomment 添加约束c_member外键 ( c_id) 引用comment( c_id);

但它不起作用:

无法创建表 'mybdd.#sql-2ee0_3769864' (errno: 150){"success":false,"error":"

1005 - 无法创建表 'sameditrbdd.#sql-2ee0_3769864' (errno: 150)</div>"}

我怎样才能做到这一点 ?

4

3 回答 3

2

您需要删除对表的所有引用,包括所有外键约束和索引,然后才能删除表。

外键约束还可以防止您删除特定的行。

或者,您可以关闭外键检查,但再次将它们重新打开可能会导致错误或不可预知的行为(因为数据库中的数据违反了您的约束)。

于 2012-12-23T22:13:20.457 回答
1

您可以使用:

SET foreign_key_checks = 0;
DROP <your_table>
SET foreign_key_checks = 1;
于 2012-12-23T22:13:05.167 回答
0

很可能有些人或他们的过程将您的餐桌作为人质!!!

您应该尝试通过他们的 spid # 来杀死他们!

要查看谁将您的餐桌作为人质,请打开查询分析器以运行

execute sp_who2 'active' -- under the database of interest

然后,自己判断是否可以杀死他们,或者打电话给那些登录的人。

要杀,就做

kill 999 -- your spid # found in that table returned by above command

之后,尝试再次截断或丢弃!

好运!!!

于 2020-08-07T23:27:49.830 回答