此时情绪此时天,无事小神仙
好好生活,平平淡淡每一天

编辑

Mysql-存储函数-批量插入数据

1千万数据插入数据库大概也就几分钟
image
image


-- --------------------------------删除存储函数 -------------------------------- --
drop procedure if exists cm_basedb.loop_insert_insert_table_data; 
-- --------------------------------创建存储函数 -------------------------------- --
DELIMITER $$
create procedure cm_basedb.loop_insert_insert_table_data(loopTimes int)
lable1:begin

	-- 若flag标识为0则继续循环,若flag标识为1则结束while循环
	declare flag int unsigned default 0;

	-- 禁止自动提交(放在声明变量之后)
	set autocommit=0;

	-- 循环次数初始化
	if(loopTimes=0) then 
		set loopTimes=1;
	end if;

	-- 开始while循环
	while 0=flag do

		if(loopTimes>1) then
			set loopTimes=loopTimes-1;
		else
			set flag=1;
		end if;

		-- execute sql start--
			INSERT INTO cm_basedb.t_share_unit (share_unit, share_unit_name) VALUES(loopTimes, '1');
		-- execute sql end--

	end while;

	-- 提交执行任务
	commit;

end lable1 $$
DELIMITER ;


-- --------------------------------调用存储函数插入数据开始 -------------------------------- --
call cm_basedb.loop_insert_insert_table_data(10000000); 
-- 删除存储函数
drop procedure if exists loop_insert_insert_table_data;
-- 显示表结构
show create table cm_basedb.t_share_unit;
-- 清空表
truncate table  cm_basedb.t_share_unit;
-- 查询数据
select * from cm_basedb.t_share_unit;
-- 查询第一条数据
select * from cm_basedb.t_share_unit order by id asc limit 1;
-- 查询最后一条数据
select * from cm_basedb.t_share_unit order by id desc limit 1;
-- 查询数量
select count(1) from cm_basedb.t_share_unit;

-- 显示执行线程
show processlist;
-- 强制关闭进程(kill id)
kill 6;


posted @ 2023-02-22 12:56  踏步  阅读(135)  评论(0编辑  收藏  举报