ホームページ >データベース >mysql チュートリアル >主キーのない SQL テーブルの重複レコードを削除するにはどうすればよいですか?
主キーなしで SQL テーブルの重複レコードを削除する
主キーがない場合、データベース内の重複レコードを識別するのは困難になる可能性があります。ただし、ウィンドウ関数と論理演算子を組み合わせて使用すると、重複を効率的に削除できます。
この例では、目的は、同じ EmpId 値と EmpSSN 値を持つレコードを Employee テーブルから削除することです。これを実現するには:
ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
SELECT SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
これらの手順に従うと、重複レコードが従業員テーブルから効果的に削除され、主キーを必要とせずにデータの整合性が確保されます。 .
以上が主キーのない SQL テーブルの重複レコードを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。