创建无参数的存储过程
mysql> create procedure sp1() select version();
调用无参数存储过程
mysql> call sp1;
或
mysql> call sp1();
删除存储过程
drop procedure sp1;
创建带有IN类型的存储过程
修改结束标识符为//
mysql> delimiter //
mysql> create procedure removeUserById(IN id int)
-> begin
-> delete from user where uid = id;
-> end
-> //
Query OK, 0 rows affected (0.02 sec)
调用带有参数的存储过程
mysql> call removeUserById(1)//
创建带有IN和OUT参数的存储过程
IN 表示在调用存储过程时要传入的参数,OUT表示存储过程返回值的变量
mysql> delimiter //
mysql> create procedure removeUserAndReturnUserNums(IN id int,OUT userNums int)
-> begin
-> delete from user where uid =id;
-> select count(id) from user INTO userNums;
-> end
-> //
Query OK, 0 rows affected (0.03 sec)
调用有OUT参数的存储过程
调用存储过程时,OUT传入的是一个变量,在mysql中,变量的形式为@开头的合法变量名,形如@nums 在这里表示的是user表中记录的数量
mysql> call removeUserAndReturnUserNums(2,@nums)//
Query OK, 1 row affected (0.05 sec)
查看存储过程返回的值
mysql> select @nums;