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

Fehler UNIQUE constraint failed sqlite Datenbank

Dieses Thema im Forum "SQLite" wurde erstellt von frankvas, 31 Oktober 2018.

  1. frankvas

    frankvas Neuer Benutzer

    Hallo Leute
    In einer Datenbank die ich bisher unter Windows benutze muß ich einige Daten ändern um sie unter Linux zu benutzen .

    Ich konnte bisher fast alle Daten erfolgreich ändern .

    Nur bei einen datensatz gab es die Fehlermeldung " UNIQUE constraint failed"

    Zum verständniss :


    UPDATE `LibraryHashes`
    SET `directory_path` = REPLACE(`directory_path`, 'D:/a', '/home/frank/musik/a')
    WHERE `directory_path` LIKE '%D:/a%';

    Dieser Befehl wurde erfolgreich ausgeführt


    UPDATE `LibraryHashes`
    SET `directory_path` = REPLACE(`directory_path`, '//Sonja2016/rock a-m', '/home/frank/musik/a/Rockam')
    WHERE `directory_path` LIKE '%//Sonja2016/rock a-m%';
    Error : UNIQUE constraint failed

    Kann mir mal einer diese Fehlermeldung erklären

    Gruß
    Frank
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Sicher.

    Du hast auf der Spalte einen Unique Constraint, es dürfen keine zwei gleichen Einträge da sein. Offenbar führt aber Dein Update dazu, daß das nun passiert. Vermutlich sind da schon jetzt einträge drin, die exakt wie die Einträge nach dem Replace aussehen -> Peng!

    Code:
    andreas@[local]:5434/test# \d bla;
                   Table "public.bla"
     Column | Type | Collation | Nullable | Default 
    --------+------+-----------+----------+---------
     t      | text |           |          | 
    Indexes:
        "bla_t_key" UNIQUE CONSTRAINT, btree (t)
    
    andreas@[local]:5434/test# select * from bla;
      t 
    -----
     bla
     foo
    (2 rows)
    
    andreas@[local]:5434/test# update bla set t = replace(t,'bla','foo') where t like '%bla%';
    ERROR:  duplicate key value violates unique constraint "bla_t_key"
    DETAIL:  Key (t)=(foo) already exists.
    
     
  3. frankvas

    frankvas Neuer Benutzer

    Danke für die Erklärung der Fehlermeldung . Ich werde die DB nach den Fehlerverursacher durchsuchen .
    gruß
    Frank
     
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