【发布时间】:2016-06-08 03:08:40
【问题描述】:
我正在使用 mysql innodb 引擎,在创建外键的过程中 mysql 崩溃了。现在我的表不存在,当我再次尝试创建它时,我收到错误 150。我知道这个错误与约束有一些关系,但我真的不知道如何重新创建表。我试图用相同的字段重新创建,但什么也没有。此外,我删除了以“#sql-*.frm”开头的表,但什么也没有。我真的不知道 innodb 在哪里存储有关损坏表及其约束的信息。请帮助如何重新创建表。
更新:
使用 SHOW ENGINE INNODB STATUS 后,我得到了:
最新的外键错误
160225 11:50:49 表 mesavis/furnace_report 的外键约束出错: 表中没有将包含的索引 列作为第一列,或 表与引用表中的不匹配 或 ON ... SET NULL 列之一被声明为 NOT NULL。约束: , CONSTRAINT "furnace_report_ibfk_2" FOREIGN KEY ("FK_treatment") REFERENCES "treatment" ("ID") ON DELETE CASCADE
但是当我尝试做 ALTER TABLE 炉报告 DROP FOREIGN KEY 炉报告 ibfk_2;我得到那个表熔炉报告不存在
如何删除那些损坏的约束,例如炉子报告 ibfk_2。它们必须放在某个地方。
【问题讨论】:
-
我不敢相信还没有人解决这个问题。我不想从一开始就重新创建数据库,因为一个约束以某种方式遗留下来。必须有一些特殊的表或一些文件,我可以在其中更改和删除此约束,以便可以再次创建表。