定义

  • 存储过程,Stored Procedure
  • 一组可编程的函数,是为了完成特定功能的 SQL 语句集,用户可通过指定存储过程的名字并给定参数来调用执行。
  • [NOT] DETERMINISTIC:如果程序或线程总是对同样的输入参数产生同样的结果,则被认为它是“确定的”,否则就是“非确定”的。如果既没有给定DETERMINISTIC也没有给定NOT DETERMINISTIC,默认的就是NOT DETERMINISTIC(非确定的)CONTAINS SQL:表示子程序不包含读或写数据的语句。

存储过程相关命令

  • 存储过程就是具有名字的一段代码,用来完成一个特定的功能
  • 创建的存储过程保存在数据库的数据字典中

    创建存储过程

    存储过程用 create procedure 创建,业务逻辑和sql写在begin 和 end 之间。

    1. create procedure proOne(in parameter1 varchar(128), parameter2 int)
    2. NOT DETERMINISTIC
    3. COMMENT '该存储过程注释'
    4. begin
    5. select * from book_entity;
    6. end;
  • in 表示入参。

  • out 表示出参。但是这个用起来很麻烦。这样子才能看到出参。
  • inout,既可以做出参又可以做入参。
-- 假设出参是 output
call proOne(@output);
select @output;

调用存储过程

call proOne();

修改存储过程

alter procedure xxx;

删除存储过程

drop procedure if exists proOne;

查看所有存储过程

show procedure status;

查看创建语句

show create procedure procedure_name;