INSERT ... ON DUPLICATE KEY UPDATE是mysql自带的一个功能。通过它可以在插入数据时自动判断该数据是否主键冲突。
如果主键冲突则自动执行更新语句。
例句如下:
CREATE TABLE ipstat(ip int UNSIGNED NOT NULL PRIMARY KEY,
hits int UNSIGNED NOT NULL,
last_hit timestamp);
INSERT INTO ipstat VALUES(inet_aton('192.168.0.1'),1,now())
ON duplicate KEY UPDATE hits=hits+1;
当我们在c#中执行该语句时一般会通过绑定的方式传递参数
SQL:
INSERT INTO ipstat VALUES(?ip_address,?num,now())
ON duplicate KEY UPDATE hits=hits+?num;