mysql向复杂语句迈进[1]

本文探讨了在数据库操作中使用SQL语法进行批量数据插入及处理主键重复问题的方法,通过结合使用INSERT...SELECT和INSERT...ON DUPLICATE KEY UPDATE语法,实现了高效的数据批量导入,同时解决了可能产生的主键冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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语法组合在一起也未尝不是一种好办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值