MySQL插入数据insert into on duplicate key update,重复数据自动更新

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert into on duplicate key update 语法可以更新重复数据的某些字段值。

1、语法

insert into table_name(field1,field2,...fieldN) values(value1,value2,...valueN) on duplicate key update fieldM = valueM;

限制条件:

  • 主键重复
  • 唯一键重复

2、案例

表结构及数据如下:

CREATE TABLE table_name(   id int(11) NOT NULL,   name varchar(50) DEFAULT NULL,   age int(11) DEFAULT NULL,   PRIMARY KEY (id),   UNIQUE KEY uk_name (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;