【mysql】批量插入数据(插入数据部分来之其他表)

本文介绍如何在MySQL中进行批量数据插入,其中部分字段的值来自其他表的相关字段。通过示例代码,展示了两种不同的插入方法,但需要注意第二种方法可能导致数据重复,即从其他表获取的字段值始终为第一条记录的信息。
摘要由CSDN通过智能技术生成

要求:对A表进行批量数据插入,部分字段值来源于其他表字段

(1)代码:

delimiter $$     
create procedure preG()		
begin
declare i int;		
set i=6001;
while i<9000 do		
	-- 关键词 'IGNORE'
	insert IGNORE into assisted_subscribe_detail (id,catalog_id,material_id,unit_id,semester_id,grade_id,user_id,datecreated,studentnum,teachnum,type,subscribe_id)
	select i,ml.id, ml.material_id,1, ml.semester_id,jc.grade_id,2,now(),567,45,'subscribe',8 from assisted_catalog ml 
	inner join assisted_material jc on jc.id = ml.material_id;
	set i=i+1;		
end while;
end 
$$		

call preG();		

这种方法插入的数据是重复的,即从其他表获取的字段都是重复的第一条记录。

(2)代码:

delimiter $$
CREATE PROCEDURE insertPresaleO()
BEGIN
	-- 这四条数据是需要从另外两张表字段中获取
	declare catalogId bigint(20);		-- 所属征订目录
    declare materialId bigint(20);		-- 所属教材
	declare semesterId bigint(20);		-- 所
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值