mysql没有存储过程_mysql存储过程

定义

为了完成特定功能的 sql语句集。经编译创建并保存在数据库的数据字典中。

特点

没有返回值

没有sql语句调用,只能call调用

不返回结果集

语法

声明语句结束符,可自定义

DELIMITER // or

DELIMITER $$

创建存储过程,存储函数

create procedure 存储过程名(参数)

创建存储过程体

create function 存储过程名(参数)

存储过程开始和结束

BEGIN....END

参数

参数类型: IN,OUT,INOUT

IN 输入参数: 调用时指定,存储过程修改该值不能返回

OUT 输出参数: 不接收传入值,可在存储过程被改变并可返回

INOUT 输入输出参数: 调用时指定,可改变可返回

注意: 参数名不能是列名,否则会被当成列名处理

声明变量

局部变量需要放在存储过程体的开始;

DECLARE variable_name datatype [DEFAULT value]

变量作用域: 仅存在begin...end这段内。

变量赋值

SET 变量名 = 表达式值

注释

用户变量

使用set 或 select 直接赋值,变量名以@开头

变量作用域: 整个会话,全局变量。

set @p_01 = 1

select name,bid into @a1,@a2 from bank limit 1; 变量名和字段名不能一致。

调用存储过程

call 存储过程名[(传参)]

查询存储过程

select name from mysql.proc where db='数据库名'

or

select routine_name from information_schema where routine_schema='数据库名'

or

show procedure status where db='数据库名'

修改存储过程

alter procedure

删除存储过程

drop procedure

栗子

mysql> delimiter $$

mysql> create procedure inout_param(inout p_inout int)

-> begin

-> select p_inout;

-> set p_inout=2;

-> select p_inout;

-> end

-> $$

mysql> delimiter ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值