mysql-存储过程

创建无参数的存储过程
mysql> create procedure sp1() select version();

mysql-存储过程
文章图片
调用无参数存储过程
mysql> call sp1; 或 mysql> call sp1();

mysql-存储过程
文章图片
mysql-存储过程
文章图片
删除存储过程
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)//

mysql-存储过程
文章图片
mysql-存储过程
文章图片
创建带有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-存储过程】查看存储过程返回的值
mysql> select @nums;

mysql-存储过程
文章图片
mysql-存储过程
文章图片
image.png

    推荐阅读