1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

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

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von slynage, 6 November 2016.

  1. slynage

    slynage Neuer Benutzer

    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) ;-)
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden