一意のインデックスによる重複の削除
指定されたシナリオでは、列のインデックスの構成ミスにより、誤って重複がテーブルに挿入されました。 A、B、C、D。重複を防ぐという目的にもかかわらず、作成されたインデックスは一意のインデックスではなく通常のインデックスでした。
クエリ実行
If既存のインデックスを通常のインデックスから一意のインデックスに変更するか、同じ列に新しい一意のインデックスを追加しようとすると、重複レコードの存在によりクエリは失敗します。
IGNORE による代替解決策オプション (5.7.4 より前)
ALTER TABLE 構文で IGNORE オプションを使用すると、重複を削除できます。
<code class="sql">ALTER IGNORE TABLE mytable ADD UNIQUE INDEX myindex (A, B, C, D);</code>
これにより重複行が破棄されますが、ドキュメントでは、どの行が保持されるかが指定されていないことに注意してください。
MySQL 5.7.4 以降のソリューション
バージョン 5.7.4 以降の場合は、無視してください。は ALTER TABLE ではサポートされなくなりました。ただし、次のアプローチを使用することもできます。
このプロセスでは、INSERT 操作中に重複が削除されます。
以上が質問の形式と記事の焦点を考慮した、いくつかのタイトルのオプションを次に示します。 **オプション 1 (直接的かつ簡潔):** MySQL で一意でないインデックスを作成した後に重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。