MySQL:insert若主键重复则update


插入新纪录,若存在则update已有记录:

replace into是若存在则把原纪录删除再插入,其他字段会改变(按照新给的数据,若新纪录中相应字段没提供则更新为默认值)。

insert into ...on duplicate key update是若存在则更新已有字段,其他字段不变。

replace into table (id,dr) values (1,'2'),(2,'3'),...(x,'y');

insert into table (id,dr1,dr2) values  (1,'2','a'),(2,'3','b'),...(x,'y','3') on duplicate key update dr1=values(dr1), dr2=values(dr2);

将z2库中z2t表的数据更新为z1库中z1t表数据。
此同步若z2t表中不存在则插入一条一模一样的数据(包括所有字段),若存在则只更新给出的字段(name和age)。

insert into z2.z2t
  select * from z1.z1t 
on duplicate key update 
`name`=values(`name`),
`age`=values(`age`);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM