我有一個InnoDB表claims
,它有大約2.4億行。該表具有外鍵約束:CONSTRAINT FK78744BD7307102A9 FOREIGN KEY (ID) REFERENCES claim_details (ID)
。我想盡快刪除表claim_details
。mysql drop foreign key without table copy
基於一些實驗,似乎如果我使用SET foreign_key_checks = 0;
下降claim_details
然後重新啓用外鍵,即使該表不再存在,mysql仍將繼續執行約束。所以,我相信我必須放棄表中的約束。
我試圖使用ALTER TABLE claims DROP FOREIGN KEY FK78744BD7307102A9
刪除約束,並且查詢已處於「複製到tmp表」狀態超過24小時(在沒有其他負載的計算機上)。我不明白爲什麼放棄約束需要複製表格。有什麼辦法可以防止這種情況發生?
mysql version 5.1.48。
我不想刪除索賠表。只有外鍵指向的claim_details表。 – mephillips
確實 - 我的錯誤。我編輯了我的答案。 –