Fehler UNIQUE constraint failed sqlite Datenbank

frankvas

Neuer Benutzer
Beiträge
2
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
 
Werbung:
Kann mir mal einer diese Fehlermeldung erklären
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.
 
Werbung:
Zurück
Oben