mysql-存储过程

创建无参数的存储过程

mysql> create procedure sp1() select version();

调用无参数存储过程

mysql> call sp1;
或
mysql> call sp1();
mysql-存储过程_第1张图片
mysql-存储过程_第2张图片

删除存储过程

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-存储过程_第3张图片
mysql-存储过程_第4张图片

创建带有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;
mysql-存储过程_第5张图片
mysql-存储过程_第6张图片
image.png

你可能感兴趣的:(mysql-存储过程)