mysql存储过程

一.参数

1.in

2.out

3.inout

二.流程控制

1.选择语句

(1)if...then...elseif....then...end if;

mysql存储过程_第1张图片

(2)case...when...then...when...then...else...end case;

mysql存储过程_第2张图片

 

mysql存储过程_第3张图片

(3)ifnull:有两个参数。当第一个参数为空时,选第二个参数,即使第二个参数也为空;否则选第一个。

mysql存储过程_第4张图片

 三.循环语句

1.while...do...end while;

mysql存储过程_第5张图片

 2.repeat

  内容

       util条件  //退出循环条件

 end repeat;

 mysql存储过程_第6张图片

3.loop名字:loop

  内容

  if 条件 then

          leave loop名字;

  end if;

  end loop;  

 mysql存储过程_第7张图片

四.定义条件和处理

定义条件和处理可以用来定义在处理过程中遇到问题时相应的处理步骤

declare continue handler for sqlstate '错误代码值' set 变量=变量值

1.定义存储变量并执行,得到错误代码:

mysql存储过程_第8张图片

2.定义条件和处理来处理错误

mysql存储过程_第9张图片

 五.管理存储过程

1.查看数据库下的存储过程:show procedure status where db='数据库名';

mysql存储过程_第10张图片

2.查看当前数据库下存储过程的列表:select specific_name from mysql.proc;

mysql存储过程_第11张图片

3.查看存储过程的内容:select specific_name,body from mysql.proc;

                                      show create procedure 存储过程名

mysql存储过程_第12张图片

4.删除存储过程:drop procedure if exists 存储过程名字;

5.修改存储过程:

alter {procedure | function} sp_name [characteristic]

characteristic:

  {contains sql | no sql | reads sql data | modified sql data}

  | sql security {definer | invoker}

  | comment 'string'

contains sql表示子程序中包含sql语句,但不包含读或写数据的语句;

no sql 表示子程序中不包含sql语句;

read sql data 表示子程序中包含读数据的语句;

modifies sql data表示子程序中包含写数据的语句。

sql security {definer | invoker}指明谁有权限来执行。

definer表示只有定义者自己才能执行;invoker表示调用者可以执行。

comment ‘string’是注释信息

目前,MySQL还不提供对已存在的存储过程的代码修改
如果,一定要修改存储过程的diam,必须,先将存储过程删除之后,在重新编写代码,或者创建一个新的存储过程

转载于:https://www.cnblogs.com/xiehuazhen/p/10098707.html

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