2017-01-12 5 views
-3

Ich habe eine serial_no (Primärschlüssel) und ich möchte ein Wort in serial_no ersetzen. Zum Beispiel:SQL Update-Duplikat

Update table Set 
serial_no=REPLACE(serial_no,'56','000') 

aber erhalten für die Aktualisierung ein Fehler duplizieren

ich alle Datensätze aktualisiert werden soll, außer dass Datensatz

+2

Welche dbms verwenden Sie? – jarlh

+0

Das Wissen über Ihr Datenmodell wäre hilfreich. Bitte sehen Sie [MCVE]. –

Antwort

0

Verwendung dupliziert NOT EXISTS auf die neue SERIAL_NO stellen Sie sicher, nicht bereits vorhanden ist.

Update table t1 
Set serial_no=REPLACE(serial_no,'56','000') 
where not exists (select 1 from table t2 
        where t2.serial_no = REPLACE(t1.serial_no,'56','000')) 
0

Wenn Sie MySQL verwenden könnten Sie UPDATE IGNORE verwenden:

UPDATE IGNORE table 
SET serial_no = REPLACE(serial_no,'56','000')