-- 创建存储过程 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
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/7456/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取