2017-01-12 9 views
-3

私はserial_no(プライマリキー)を持っており、serial_noに単語を置きたいと思います。たとえば:Sqlは重複を更新します

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

しかし、エラーが表示されるが、更新

の重複私はそのレコードが

+2

? – jarlh

+0

データモデルを知っておくと便利です。 [mcve]をご覧ください。 –

答えて

0

使用NOT EXISTSが新しいserial_noがまだ存在していないことを確認するために複製される以外のすべてのレコードを更新します。

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

MySQLを使用している場合は、UPDATE IGNOREを使用することができます。

DBMSは、使用している
UPDATE IGNORE table 
SET serial_no = REPLACE(serial_no,'56','000')