MySQL: InnoDB での ALTER IGNORE TABLE の制限について理解する
ALTER IGNORE TABLE コマンドは、MySQL からの重複の削除を支援することを目的としています。一意のインデックスを追加してテーブルを作成します。ただし、このコマンドを適用すると、「整合性制約違反」エラーなどの予期しないエラーが発生しました。
MySQL ドキュメントによると、IGNORE キーワードを使用すると、変更プロセス中に重複キー エラーを無視できるようになります。ただし、特定のリリースの MySQL の InnoDB バージョンに明らかなバグが確認されています。このバグにより、IGNORE キーワードが期待どおりに機能できなくなります。
回避策として、ユーザーはテーブルを MyISAM に変換し、IGNORE で一意のインデックスを追加してから、InnoDB に変換し直すことを検討できます。このプロセスの概要は次のとおりです。
ALTER TABLE table ENGINE MyISAM; ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field); ALTER TABLE table ENGINE InnoDB;
テーブルに外部キー制約がある場合、これらの制約は変換前に削除してから追加する必要があるため、このソリューションは実行できない可能性があることに注意することが重要です。その後に戻ります。
以上がInnoDB で ALTER IGNORE TABLE が失敗する理由とその回避方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。