MySQL为我们解决了这个问题:我们可以通过 ON DUPLICATE KEY UPDATE 达到以上目的,且能保证操作的原子性和数据的完整性。
在DUPLICATE KEY UPDATE上可以达到以下目的:
向数据库中插入一条记录:
若该数据的主键值/ UNIQUE KEY已经在表中存在,则执行更新操作,即UPDATE后面的操作。
否则插入一条新的记录。
注意:执行批量插入时要使用values(字段名)函数,才可以解决主键冲突问题
insert intocartype(SynID,Update_time )
values
(3,'2015-12-02 03:00:00'),
(2,'2015-12-0222:22:22')
ON DUPLICATEKEY UPDATE
update_time=values(Update_time)