我们日常在使用 insert into 语句向表中插入数据时,一定遇到过主键或唯一索引冲突的情况,当遇到这种情况时,MySQL默认的反应是报错并停止执行后续的语句,为了避免这种情况,你有3种选择:
- 使用insert ignore into语句忽略冲突语句并继续执行。
- 使用replace into语句对冲突记录进行替换,用法见链接:MySQL 插入替换语句(replace into statement)
- 使用insert…on duplicate key update语句对冲突记录进行更新。
一、insert … on duplicate key update语句简介
1.1 基本用法
创建一张测试表test,其中id为主键,并插入2条数据:
create table test(
id int not null auto_increment primary key,
source varchar(16),
val int,
conflict int);
truncate table test;
insert into test values(1