Tag: 存储过程

mysql存储过程

sql存储过程的实现跟一般的语言相比,有点特殊,有很多值得注意的地方,下面以一个支付的存储过程为例:

READ MORE

使用laravel封装mysql存储过程的调用接口

在使用存储过程时,调用时通常如下:

1
2
3
set @out_status = 0;
call procedure_name(param1, ...,, @out_status);
select @out_status;

比较啰嗦,有必要进行一次封装,如下:

READ MORE

mysql存储过程中的select into与局部变量的问题

今天解决了存储过程中的select into与局部变量的问题,原来存储过程大概这样:

1
2
3
4
5
6
7
8
# 在存储过程内部,省略
DECLARE user_uid INT;
SET user_uid = 0;
SELECT `user_uid` INTO user_uid
FROM table
WHERE ...;

结果user_uid的值一直为0,确认数据表满足条件是有一条数据的。试了很多种方法才发现是into赋值的变量不能和select的字段名相同,甚至不能用declare来定义,所以最终解决是这样:

1
2
3
4
5
6
7
8
# 注意不能定义user_uid这个局部变量
DECLARE lc_user_uid INT;
SET lc_user_uid = 0;
SELECT `user_uid` INTO lc_user_uid
FROM table
WHERE ...;