有的时候会需要写一段insert的sql,如果主键存在,则update;如果主键不存在,则insert。Mysql中提供了这样的用法:ON DUPLICATE KEY UPDATE。...首先数据库的原始数据如下:
a b c
1 b1 c1
2 b2 c2
3 b3 c3
此时如果执行下面的sql就会报错
INSERT INTO test VALUES(1,'...b4','c4');
报错信息如下,提示无法重复插入:
1 queries executed, 0 success, 1 errors, 0 warnings
查询:insert into test...,它的意思是先执行前面的Insert,如果主键重复,则执行后面的UPDATE
INSERT INTO test VALUES (1,'b4','c4') ON DUPLICATE KEY UPDATE...INTO test VALUES (1,'b4','c4') ON DUPLICATE KEY UPDATE b=VALUES(b),c=VALUES(c)
共 2 行受到影响
执行耗时 :