【发布时间】:2011-11-09 19:02:08
【问题描述】:
我有一个 InnoDB 表 claims,它有大约 2.4 亿行。该表有一个外键约束:CONSTRAINT FK78744BD7307102A9 FOREIGN KEY (ID) REFERENCES claim_details (ID)。我想尽快删除表claim_details。
根据一些实验,如果我使用SET foreign_key_checks = 0; drop claim_details 然后重新启用外键,mysql 将继续强制执行约束,即使表不再存在。所以,我相信我必须从表中删除约束。
我已尝试使用ALTER TABLE claims DROP FOREIGN KEY FK78744BD7307102A9 删除约束,并且查询已处于“复制到 tmp 表”状态超过 24 小时(在没有其他负载的机器上)。我不明白为什么删除约束需要制作表的副本。有什么办法可以预防吗?
mysql 版本 5.1.48。
【问题讨论】:
标签: mysql foreign-keys alter-table