首页 > 数据库 >Mysql-存储函数-批量插入数据

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

时间:2023-02-22 13:12:04浏览次数:47  
标签:insert 批量 cm basedb -- share 插入 Mysql unit

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;


标签:insert,批量,cm,basedb,--,share,插入,Mysql,unit
From: https://www.cnblogs.com/mjtabu/p/17143987.html

相关文章