ON DUPLICATE KEY UPDATE 可以达到以下目的:
向数据库中插入一条记录:
若该数据的主键值/ UNIQUE KEY 已经在表中存在,则执行更新操作, 即UPDATE 后面的操作。
否则插入一条新的记录。
示例:

Step1 . 创建表,插入测试数据

SET FOREIGN_KEY_CHECKS=0;

– Table structure for mRowUpdate

DROP TABLE IF EXISTS mRowUpdate;
CREATE TABLE mRowUpdate (
  id int(11) NOT NULL,
  value varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB;

– Records of mRowUpdate


INSERT INTO mRowUpdate VALUES (‘1’, ‘sss’);
INSERT INTO mRowUpdate VALUES (‘2’, ‘szh’);
INSERT INTO mRowUpdate VALUES (‘3’, ‘9999’);
SET FOREIGN_KEY_CHECKS=1;

Step2 .测试 ON DUPLICATE KEY UPDATE 的使用方法:

INSERT INTO mRowUpdate(id,value) VALUES(3, ‘SuperMan’) ON DUPLICATE KEY UPDATE value=‘SuperMan’;