首页 > 代码库 > mysql中的过程procedure
mysql中的过程procedure
一、创建过程语法
create procedure 过程名字(参数列表)
begin
-- SQL语句...
end
-- 创建存储过程 delimiter $$ create procedure my_act() begin select * from goods; end $$ delimiter ;
二、查看过程
-- 查看所有过程 show procedure status [like ‘pattern‘]; -- 查看过程创建语句 show create procedure 过程名字;
三、过程调用
-- 过程调用 call 过程名字();
四、过程删除
-- 删除过程 drop procedure 过程名字;
五、过程参数详解
相比函数,过程的参数多了三种限定修饰符:
1. in -- 值传递, 参数可以是数值或变量, 过程内部的修改不会对外部造成影响。
2. out -- 引用传递, 参数只能是变量。在使用前变量的数据会被置空。在过程调用结束后, 才会把过程中产生的值传给外部变量。
3. inout -- 引用传递, 参数只能是变量. 可以把外部的数据传给内部使用, 内部的修改也会作用到外部。同样是在调用结束后,才会改变外部的值。
使用方式:create procedure 过程名([in 参数名 参数类型,][out 参数名 参数类型,][inout 参数名, 参数类型])
-- 创建全局变量 set @ga = 1; set @gb = 2; set @gc = 3; -- 过程参数示例 delimiter $$ create procedure pro_demo(in x int, out y int, inout z int) begin -- 查看数据进入过程后的变化 select x, y, z; -- 修改局部变量的值 set x = 100; set y = 200; set z = 300; -- 查看局部变量的值 select x, y, z; -- 查看全局变量的值以观察局部变量的修改对全局有没有影响 select @ga, @gb,@gc; -- 修改全局变量的值 set @ga = ‘a‘; set @gb = ‘b‘; set @gc = ‘c‘; -- 查看调用结束前全局变量的值以观察过程调用结束后对全局变量的改变 select @ga, @gb, @gc; end $$ delimiter ; -- 调用过程 call pro_demo(@ga, @gb, @gc); -- 过程调用结束后再次观察全局变量的值 select @ga, @gb, @gc;
mysql中的过程procedure
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。