InnoDB で ALTER IGNORE TABLE が失敗する理由とその回避方法

Barbara Streisand
リリース: 2024-11-10 01:47:02
オリジナル
256 人が閲覧しました

Why Does ALTER IGNORE TABLE Fail with InnoDB and How to Workaround It?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート