MYSQL实现upsert

 

该操作的实现原理是通过判断插入的记录里是否存在主键冲突来决定是插入还是更新,当出现主键冲突时则进行更新操作

1、创建一个测试表 test 
CREATE TABLE test ( 
id INT(11) NOT NULL, 
test1 VARCHAR(11) DEFAULT NULL, 
test2 VARCHAR(11) DEFAULT NULL, 
test3 VARCHAR(11) DEFAULT NULL, 
PRIMARY KEY (id) 
)

2、拼接sql 
在INSERT INTO…..后面加上 ON DUPLICATE KEY UPDATE关键字

INSERT INTO test VALUES(1,’1’,’2’,’3’) 
ON DUPLICATE KEY UPDATE id=1,test1=’4’,test2=’2’,test2=’4’

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2行

你可能感兴趣的:(mysql)