MySQL で ALTER IGNORE TABLE が依然として「重複エントリ」エラーをスローするのはなぜですか?

Patricia Arquette
リリース: 2024-11-08 02:29:02
オリジナル
371 人が閲覧しました

Why Does ALTER IGNORE TABLE Still Throw a

MySQL: ALTER IGNORE TABLE がドキュメントにもかかわらず「整合性制約違反」を引き起こす

MySQL ドキュメントには、ALTER IGNORE TABLE を組み合わせて使用​​すると明確に記載されていますUNIQUE KEY を使用すると、重複キー エラーをオーバーライドして重複を削除できるようになります。ただし、実際には、ユーザーは永続的なエラー メッセージ「#1062 - キー 'dupidx' のエントリ 'blabla' が重複しています」に遭遇しました。

この動作は、MySQL の InnoDB バージョンのバグによって引き起こされているようです。特定のバージョン。具体的には、IGNORE キーワード拡張機能が InnoDB コンテキストで期待どおりに機能しません。

解決策:

この問題を回避するには、次の回避策を使用できます。

  1. 以下を使用してテーブルを MyISAM に変換します: ALTER TABLE table ENGINE MyISAM;
  2. UNIQUE INDEX を使用して ALTER IGNORE TABLE コマンドを適用します: ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field);
  3. 次を使用してテーブルを InnoDB に戻します: ALTER TABLE table ENGINE InnoDB;

注: テーブルに外部キー制約が含まれている場合は、それらを削除して再度追加します。データの整合性を確保するために必要になります。

以上がMySQL で ALTER IGNORE TABLE が依然として「重複エントリ」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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