ホームページ > データベース > mysql チュートリアル > データの整合性を維持しながら Oracle テーブルの重複行を削除するにはどうすればよいですか?

データの整合性を維持しながら Oracle テーブルの重複行を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-19 21:52:10
オリジナル
528 人が閲覧しました

How Do I Delete Duplicate Rows in Oracle Tables While Preserving Data Integrity?

Oracle テーブルから重複行を効率的に削除する

Oracle テーブル内のデータの重複はさまざまなソースから発生する可能性があり、多くの場合、主キーの作成が妨げられ、データの整合性が損なわれます。 この記事では、レコードごとに 1 つの一意のエントリを保持して重複行を削除する簡単な方法を説明します。

解決策:

rowid 疑似列を利用すると、重複行を効果的に特定して削除できます。次の SQL ステートメントはこれを実現します:

<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: これを、重複する行を含むテーブルの名前に置き換えます。
  • rowid: 各行の一意の識別子は、このプロセスにとって非常に重要です。
  • サブクエリ (SELECT MIN(rowid) FROM your_table GROUP BY column1, column2, column3) は、rowidcolumn1、および column2 の一意の組み合わせごとに最小の column3 を識別します。 これにより、一意のデータ セットごとに 1 行のみが保持されるようになります。
  • column1column2、および column3: これらは、各レコードの一意のキーを形成する列を表します。これらを調整して、テーブルの一意性を定義する列と一致させます。 必要に応じて列を追加できます。

このクエリを実行すると、重複する行が特定されて削除され、指定されたキーの組み合わせごとに個別のレコードが 1 つだけ残ります。これにより、データの整合性が競合することなく、これらの列に基づいて主キーを作成できるようになります。

以上がデータの整合性を維持しながら Oracle テーブルの重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート