Doppelte Einträge löschen ohen Primärschlüssel

slynage

Neuer Benutzer
Beiträge
1
Guten Abend zusammen,

ich stehe vor folgendem Problem. Ich habe eine Tabelle mit 700k+ einträgen. Diese sind durch keinen Wert eindeutig.

Leider wurde diese Tabelle zweimal befüllt und somit viele Einträge doppelt. Gibt es nun eine möglcihkeit die doppelten Einträge (Hierbei spielt keine Rolle welcher Eintrag von beiden) zu löschen?

Viele Dank ... Ich stehe hierbei ziemlich auf dem schlauch (und bin SQL Einsteiger) ;-)
 
Werbung:
Code:
test=# select * from slynage ;
 c1 | c2 | c3
----+----+----
  1 |  2 |  3
  1 |  2 |  3
  2 |  3 |  3
  2 |  3 |  4
  1 |  1 |  1
  1 |  1 |  1
(6 Zeilen)

test=*# commit;
COMMIT
test=#
test=# begin;
BEGIN
test=*# create table slynage_tmp as select distinct * from slynage ;
SELECT 4
test=*# drop table slynage;
DROP TABLE
test=*# alter table slynage_tmp rename to slynage;
ALTER TABLE
test=*# commit;
COMMIT
test=# select * from slynage ;
 c1 | c2 | c3
----+----+----
  1 |  2 |  3
  2 |  3 |  3
  1 |  1 |  1
  2 |  3 |  4
(4 Zeilen)

test=*#

JEDE Tabelle sollte einen PK haben, daher:

Code:
test=*# alter table slynage add primary key (c1, c2, c3);
ALTER TABLE
test=*# commit;
COMMIT
test=#

Natürlich wäre es besser, den PK auf eine oder wenige Spalten zu begrenzen.
 
Zurück
Oben