MySql 存储过程一--基本语法及参数介绍

存储过程是为了完成特定功能的SQL语句集,经过第一次编译后,之后调用都不用再进行编译

  • 创建:
create procedure procedure_name ([parameter list])
[characteristic ...]
begin routine_body
end

其中,

procedure_name: 为存储过程名称;

parameter list: 为参数列表,可以包含零个或多个参数,参数与参数之间逗号(,)分隔。

                        每个参数的形式为:参数类型  参数名称  数据类型

                        参数类型:in(输入参数) out(输出参数) inout(输入输出参数,调用时被指定,可以被修改和返回)

characteristic:该项可选,表示存储过程特性,有如下取值:

                     1)language sql: 存储过程由SQL语句组成,目前sql是language特性的唯一值;

                     2)[not] deterministic: 表示结果是否为确定的值,即相同输入是否一定能得到相同输出,默认为not deterministic;

                     3)contains sql(存储过程包含sql语句,但不包含读写数据的语句)| no sql(存储过程不包含sql语句)| reads sql data(存储过程包含读数据的语句)|modifies sql data(存储过程包含读写数据的语句)

                     4)sql security {definer(只有定义者可以执行该存储过程)|invoker(拥有权限的调用者可以执行)} ,默认definer

                     5)comment 'string'(注释,描述存储过程)

routine_body: 程序体。  

                   

  • 调用:
call procedure_name(parameter list);
  • 删除:
drop procedure procedure_name;

  

PS:

1、创建存储过程前,要先指定存储过程所属的数据库;

2、查询某个数据库所包含的存储过程(设数据库名称为factory,包含一个名为sum_app的存储过程):

3、查询存储过程创建语句:

4、可以在一个存储过程中调用另一个存储过程,但是不能删除另一个存储过程。

原文地址:https://www.cnblogs.com/yuanfy/p/6714619.html