ホームページ >データベース >mysql チュートリアル >Oracle で重複行を効率的に削除するにはどうすればよいですか?
Oracle データベース内の重複行の削除
データベースのテスト中に、テーブルにサンプル データを設定すると、意図しない重複エントリが発生することがよくあります。 これにより、特に主キーを確立しようとする場合に問題が発生する可能性があります。
解決策: ROWID の活用
Oracle の rowid
疑似列は各行に一意の識別子を提供し、重複を削除する簡単なソリューションを提供します。 この方法により、データの整合性が確保され、主キーを適切に作成できるようになります。
次の SQL ステートメントは、重複行を効率的に削除し、各重複セットから 1 つのインスタンスを保持します。
<code class="language-sql">DELETE FROM your_table WHERE rowid NOT IN ( SELECT MIN(rowid) FROM your_table GROUP BY column1, column2, column3 );</code>
your_table
を実際のテーブル名に置き換え、column1
、column2
、column3
をデータの一意の識別子を定義する列に置き換えてください。最適な効率を得るには、すべての列を GROUP BY
句に含めることを検討してください。 このクエリは rowid
を使用して重複を特定して削除し、データをクリーンな状態にして主キー制約に対応できるようにします。
以上がOracle で重複行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。