PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Usuń duplikat z tabeli

Jest to jeden z wielu powodów, dla których wszystkie tabele powinny mieć klucz podstawowy (niekoniecznie numer ID lub IDENTITY, ale kombinację jednej lub więcej kolumn, która jednoznacznie identyfikuje wiersz i której unikalność jest wymuszana w bazie danych).

Twój najlepszy zakład jest taki:

SELECT field1, field2, field3, count(*) 
INTO temp_table1
FROM table1
GROUP BY field1, field2, field3 having count(*) > 1

DELETE T1
FROM table1 T1
INNER JOIN (SELECT field1, field2, field3
      FROM table1
      GROUP BY field1, field2, field3 having count(*) > 1) SQ ON
            SQ.field1 = T1.field1 AND
            SQ.field2 = T1.field2 AND
            SQ.field3 = T1.field3

INSERT INTO table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM temp_table1

DROP TABLE temp_table1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql migracja JSON do JSONB

  2. Przyznaj użytkownikowi uprawnienia do nowych tabel utworzonych w postgresql

  3. Zduplikowany klucz postgresql narusza ograniczenie unikalności

  4. Konwertuj datę na dzień juliański w PostgreSQL

  5. Nie można połączyć się z PostgreSQL za pomocą PHP pg_connect()