Mysql 调用out类型的存储过程及相关注意点

mysql中如何编写存储过程,想必大家都已经知道。
在调用方面,针对out类型的存储过程,在mysql控制台调用时,可以使用@变量名来接受。

比如:编写好了一个存储过程叫删除固定id的记录,并返回剩余总数的存储过程pro_01

delimiter //
create procedure pro_01(in p_id int unsigned,out userNums int unsigned)
begin
    delete from users where id=p_id;
    select count(id) from users into userNums;
end
//

使用select into 变量的形式对out 参数进行赋值。
则调用结果可以如下:

mysql>call pro_01(20,@nums);
mysql>select @nums;

注意点:在编写存储过程中,需要注意默认的delimiter为英文的分号;

在编写的时候需要修改。

客户端编码问题,在select查询时获取得到乱码结果时,可以更改客户端的编码方式。

使用

set names gbk

修改成了gbk现在,这样并不是修改mysql数据库的存储编码,只是显示成gbk编码而已。

存储过程的删除命令

drop procedure 存储过程名

在编写错误的时候,需要进行存储过程的删除,重新再次编写。
因为只能修改一些简单的信息,如果要修改存储过程体,则需要删除重新创建。

猜你喜欢

转载自blog.csdn.net/huangbaokang/article/details/80898916