insert语法有3三种形式:
用的较多的是:
INSERT ... SELECT Syntax和INSERT ... ON DUPLICATE KEY UPDATE Syntax
平常只是独用其一,今天合在一起用:
create table if not exists lims_data.test_25(
a int not null,
b int not null,
primary key (a)
);
create table if not exists lims_data.test_26(
a int not null,
b int not null
);
insert into lims_data.test_26 values(1, 1), (3, 1), (3, 4);
select * from lims_data.test_26;
select * from lims_data.test_25;
truncate lims_data.test_26;
truncate lims_data.test_25;
insert into lims_data.test_25(a, b)
select a, b from lims_data.test_26
on duplicate key update lims_data.test_25.b = lims_data.test_26.b;
测试结果也如我们之前预测的一样
这种情况适于: 批量级操作但遇到主键重复的问题. 将两种insert语法组合在一起也未尝不是一种好办法