mysql 存储过程知识点

一.创建存储过程
create procedure sp_name()
begin
.........
end

二.调用存储过程
1.基本语法:call sp_name();
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

三.删除存储过程
1.基本语法:
drop procedure sp_name;
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

四.其他常用命令
1.show procedure status;
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure [sp_name];
显示某一个MySQL存储过程的详细信息

  • 格式
    MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])
    [特性 ...] 过程体
    其中:
    MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
    CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
    IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值(修改该值会参与运算,但存储过程执行结束后,该值还是初始值)
    OUT 输出参数:该值可在存储过程内部被改变,并可返回
    INOUT 输入输出参数:调用时指定,并且可被改变和返回

  • 创建存储过程例子

mysql> DROP PROCEDURE IF EXISTS calc_param;
mysql> DELIMITER $$
mysql> CREATE PROCEDURE calc_param(IN p_in int, OUT p_out int)  
BEGIN  
    select p_in;
    set p_in=2;
    set p_out=p_in*2;
    select p_out;
    select * from student;
END $$ 
mysql> DELIMITER ;
mysql> set @p_in=1;
mysql> set @p_out=5;
mysql> call calc_param(@p_in,@p_out);
mysql> select @p_in;
mysql> select @p_out;
原文地址:https://www.cnblogs.com/cag2050/p/7117774.html