微前端架构如何改变企业的开发模式与效率提升
853
2022-08-29
Mysql 使用存储过程动态批量添加数据(mysql怎么导入sql文件)
循环批量插入数据
-- 创建存储过程
create procedure my_procedure01(in num int(2),out ii int(2))
begin
declare i int(2) default 0;
declare str int(2);
while i < num
do
set str = round(rand()*100) + 1;
insert into p_procedure (name) values (str);
set i = i + 1;
end while;
set ii = i;
end;
-- 删除存储过程
drop procedure my_procedure01;
-- 调用存储过程
call my_procedure01(2, @y);
-- 查询存储过程的输出
select @y;
拼接批量插入数据
-- 创建存储过程
create procedure my_procedure02(in num int(2),out ii text)
begin
declare i int(2) default 0;
declare str int(2);
declare data text;
while i < num
do
set str = round(rand()*100) + 1;
set data = concat('(', str, ')');
-- 存储 alldata 内容的变量必须是全局变量,使用 @ 符修饰
if @insertData = '' then
set @insertData = CONCAT_WS(',', data);
else
set @insertData = CONCAT_WS(',', @insertData, data);
end if;
set i = i + 1;
end while;
-- 存储 sql 内容的变量必须是全局变量,使用 @ 符修饰
set @sql = CONCAT('INSERT INTO p_procedure (name) VALUES ', @insertData);
-- 预处理
PREPARE ins from @sql;
EXECUTE ins;
DEALLOCATE PREPARE ins;
-- 清空全局 @insertData 数据,否则数据会一直追加
set @insertData = '';
-- 输出 sql
set ii = @sql;
end;
-- 调用存储过程
call my_procedure02(2, @ii);
-- 查询存储过程的输出
select @ii;
-- 外部重置全局变量
set @insertData = '';
-- 删除存储过程
drop procedure my_procedure02;
-- 存储过程-实例02 - end
执行的 sql
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~