未能删除或截断表

时间:2012-12-23 22:08:26

标签: mysql truncate

我尝试了所有东西来截断表格,但我总是有相同的信息:

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 TABLE comment   添加约束c_member外键(c_id)       参考commentc_id);

但它不起作用:

无法创建表'mybdd。#sql-2ee0_3769864'(错误号码:150){“成功”:false,“错误”:“

1005 - 无法创建表'sameditrbdd。#sql-2ee0_3769864'(错误号:150)< / div>“}

我该怎么做?

3 个答案:

答案 0 :(得分:2)

在删除表之前,您需要删除对表的所有引用,包括所有外键约束和索引。

外键约束也可以阻止您删除特定行。

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

答案 1 :(得分:1)

您可以使用:

SET foreign_key_checks = 0;
DROP <your_table>
SET foreign_key_checks = 1;

答案 2 :(得分:0)

很可能有些人或其过程将您的餐桌劫为人质!!!

您应该尝试杀死他们,以他们的spid#来解决他们!

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

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

然后,自行判断是否可以杀死它们,或致电已登录的人。

要杀死,只要做

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

之后,请尝试截断或再次放下!

祝你好运!