MySQL データベースから重複レコードを削除: 一意のキー ソリューション
データの整合性を維持することは、データベースを効率的に運用するために非常に重要です。この例では、「id」列と「title」列を持つテーブルが表示されますが、「title」は別のものである必要があります。ただし、多数の重複を含む 600,000 件を超えるレコードが存在するため、一意性を実現することが困難になります。私たちの目標は、一意のタイトルを損なうことなく、これらの重複エントリを削除することです。
解決策は、一意のキー制約の力を利用することにあります。 「title」列に UNIQUE キーを追加することで、効果的に一意性を強化し、重複レコードの挿入や更新を防ぐことができます。ただし、既存の重複のある列に一意のキーを直接追加すると、エラーが発生します。
この問題に対処するために、「ALTER IGNORE TABLE」コマンドの後に「ADD UNIQUE KEY」句を使用します。このコマンドは、一意のキーの追加中に発生する可能性のあるエラーを無視するように MySQL に指示します。その結果、一意制約に違反するすべての重複行が通知なく削除され、重複が効果的に排除されます。
使用できるコマンド構文は次のとおりです。
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(title);
このコマンドは、特定の MySQL バージョンの InnoDB テーブルと互換性がない可能性があることに注意してください。このような場合、別の回避策については、この投稿を参照してください。
このコマンドを実行すると、「title」列に一意のキーが確立され、重複するレコードがすべて一度に削除されます。これにより、タイトルの一意性を確保しながら、データの整合性を維持できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3