Oracle のデータ整合性: 重複行の排除
Oracle テーブル内の重複エントリは、特に主キーを確立する場合に、データの整合性を損なう可能性があります。 この記事では、これらの重複を効果的に削除するソリューションの概要を説明します。
rowid
疑似列の活用
Oracle の rowid
疑似列は、各行に一意の識別子を提供します。 これにより、正確な削除戦略が可能になります:
<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
を選択します。NOT IN
句は、rowid
が最小値ではないすべての行を削除し、一意の各レコードのインスタンスを 1 つだけ残します。このアプローチにより、テーブルの重複エントリが効率的にクレンジングされ、後続の操作でのデータの整合性が確保されます。
以上がOracle テーブルから重複行を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。