MySQL:解決ALTER IGNORE TABLE 期間的「完整性約束違規」錯誤
在MySQL 中使用ALTER IGNORE TABLE 語句刪除重複項和建立唯一索引時,可能會遇到「完整性約束違規」錯誤。儘管 MySQL 文件表明 IGNORE 關鍵字應該可以防止此類錯誤,但還是會發生這種情況。
這個問題似乎在於某些版本的 MySQL InnoDB 版本中的錯誤。 IGNORE 擴充在 InnoDB 中的功能有限,導致儘管使用它,重複的鍵錯誤仍然存在。
要解決此問題,請考慮以下替代方法:
將使用以下命令將表格傳送至MyISAM 儲存引擎:
運行ALTER IGNORE TABLE語句來建立唯一索引:
使用下列指令將資料表重新轉換回InnoDB:
請注意,如果表有外鍵約束,此方法可能不起作用。在這種情況下,您需要暫時刪除這些約束,然後在完成索引建立後將它們加回。
以上是為什麼 MySQL InnoDB 中「ALTER IGNORE TABLE」仍然會導致「完整性約束違規」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!