sql >> Database teknologi >  >> RDS >> PostgreSQL

Fjern dublet fra en tabel

Dette er en af ​​mange grunde til, at alle tabeller bør have en primær nøgle (ikke nødvendigvis et ID-nummer eller IDENTITET, men en kombination af en eller flere kolonner, der entydigt identificerer en række, og som har sin unikhed håndhævet i databasen).

Dit bedste bud er noget som dette:

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. Sådan migrerer du databaser til din forhandlerserver

  2. JDBC MySql-forbindelsespooling praktiserer for at undgå opbrugt forbindelsespulje

  3. Sådan rettes "EXECUTE-sætningen mislykkedes, fordi dens WITH RESULT SETS-klausul specificerede 1 resultatsæt(er)..." i SQL Server

  4. Asynkron replikering automatisk failover i MySQL 8.0.22