Mysql 数据库循环插入与循环更新

文章描述了作者在工作中如何使用Mysql的循环插入和更新语句,处理用户提供的Excel数据,进行数据库表单导入,包括创建存储过程初始化记录和更新数据的过程。

Mysql 数据库循环插入与循环更新

近期因为工作原因,需要根据用户提供的excel表格数据进行对应数据库表单导入。导入过程中使用了mysql循环插入语句,以及循环更新语句,特此记录,以免遗忘。

用户提供资料展示

本以为excel文件内容为直接可导入记录,拿到后发现excel文件后,原始表格内容还需要进一步计算方可得出实际需要倒入的记录内容。但每一条原始记录有具体固定的计算逻辑。因此其实际的操作步骤为,先计算出实时需要导入内容,然后再根据实际导入内容进行导入。
首先我们看看用户提供的要插入的数据的信息表格

在这里插入图片描述

循环插入记录完成记录表的初始化

有了用户提供的这个插入记录相关信息,我们就可以计算出该信息表具体需要多少条记录。我们将要插入的记录数据条数计算出来后,然后我们就可以使用循环插入记录的方式来完成表记录的初始化。下面的Sql语句流程是首先创建一个完成循环插入的存储过程,然后进行调用,再进行存储过程释放。

CREATE PROCEDURE p01 ()
BEGIN
	declare i int;
	SET i = 1;
	WHILE i < 1+1451 DO
		INSERT INTO radio_siglsrc_rec (id_sigsrc,efs_max,efs_min,model,anti_interference) VALUES(i,1,70,1,1);
		SET i = i + 1;
	END WHILE;
END;	
CALL p01();	
DROP PROCEDURE p01;

进行数据记录的更新

撤销上面的步骤完成了信息表的初始化,接下来我们需要对记录的名称字段,频率字段值进行更新。如下条件。
当前需要更新的起始位置:1500行
起始频率 单位 信道数 作用名称 带宽 单位
160.650 kHz 5 XXXXX频率 0.3 kHz
160650
下面的sql语句完成 从 id_sigsrc ==1500 的记录开始,更新名称,名称自动编号,frq_center值根据带宽自动追加。

CREATE PROCEDURE p07 ()
BEGIN
	declare i int;
	declare idx int;
	declare var_frq_center BIGINT;
	SET i = 1500;
	SET idx = 1;
	SET var_frq_center = 160650;

	WHILE i < (1500+5) DO

	UPDATE radio_siglsrc_rec set name_sigsrc = CONCAT('XXXXXXXA',idx) , frq_center=var_frq_center  , span=300 where id_sigsrc=i ;

	SET i = i + 1;

	SET idx = idx + 1;

	SET var_frq_center = var_frq_center + 300;

	END WHILE;
END;

CALL p07();
DROP PROCEDURE p07;

好记性不如烂笔头,养成好习惯,坚持记录。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值