重複レコードに対する ALTER IGNORE TABLE ADD UNIQUE の影響の確認
複数の列に UNIQUE 制約をテーブルに追加しようとすると、この制約に違反する重複レコードが発生することは避けられません。 MySQL の以前のバージョンでは、ALTER TABLE ステートメントの IGNORE 句がこのような重複の処理に重要な役割を果たしていました。
MySQL 5.7.4 以降: IGNORE 句が削除されました
ただし、MySQL 5.7.4 以降、IGNORE 句は非推奨になり、これを使用するとエラーが発生するようになりました。したがって、以下に概説する古い動作は適用されなくなりました。
古い MySQL バージョンでの動作
IGNORE 句をサポートする古い MySQL バージョンでは、次の場合に次の動作が発生します。 UNIQUE 制約の追加:
この例では、タイプ = 'Apple' および所有者の重複レコードを含むテーブルに、(タイプ、所有者) に UNIQUE 制約が追加されています。 = 'Apple CO'、最小の ID を持つレコードが保持されます。同じ値を持つ他のレコードは削除されます。
ただし、この動作は 5.7.4 より前の MySQL バージョンに固有であることに注意することが重要です。最新の MySQL バージョンでは、IGNORE 句はサポートされなくなり、すべての競合するレコードにより ALTER TABLE 操作が失敗します。
以上がMySQL に UNIQUE 制約を追加するとレコードが重複するとどうなりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。