PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Hapus baris duplikat dari tabel tanpa kunci unik

Jika Anda mampu menulis ulang seluruh tabel, ini mungkin pendekatan paling sederhana:

WITH Deleted AS (
  DELETE FROM discogs.releases_labels
  RETURNING *
)
INSERT INTO discogs.releases_labels
SELECT DISTINCT * FROM Deleted

Jika Anda perlu secara khusus menargetkan catatan duplikat, Anda dapat menggunakan ctid internal internal bidang, yang secara unik mengidentifikasi baris:

DELETE FROM discogs.releases_labels
WHERE ctid NOT IN (
  SELECT MIN(ctid)
  FROM discogs.releases_labels
  GROUP BY label, release_id, catno
)

Berhati-hatilah dengan ctid; itu berubah seiring waktu. Tetapi Anda dapat mengandalkannya agar tetap sama dalam satu cakupan pernyataan tunggal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyortiran kumpulan kueri:Menentukan susunan kolom untuk kueri Django ORM

  2. Kurangi pemberitahuan yang mengganggu di plpgsql

  3. Postgresql:Ekspor CSV dengan jeda baris yang lolos

  4. Di mana saya mendapatkan sumber libpq?

  5. SQL beberapa kolom berbeda