MySQL 存储过程

发布时间 2023-12-20 12:11:09作者: TomLove

8.1.3 mysql流程控制语句

mysql 流程控制语句和局部变量一样, 只能放在存储过程,存储函数和触发器中

1. 顺序语句

begin....end 语句块, 语句块中可以包含一组语句,语句可以嵌套

begin
语句块......;
end;

delimiter 命令

delimiter 结束符;  -- 将 mysql 的结束符修改为 结束符
2. 分支结构

语法格式

if条件1  then语句序列1
[elseif 条件2 then 语句序列2]
....
[else 语句序列n]
end if;
3. 循环结构
  1. while
(1)while语句
(2) repeat 语句
repeat
语句序列
until 条件
end repeat;

8.2存储过程

8.2.1 创建存储过程

-- 形式为 [in | out | inout]参数名 类型
-- in
-- out
-- inout
-- 存储过程 begin 开始 end 结束
create procedure 存储过程名 ([参数1], [参数2], ....)

8.2.2 调用存储过程

call 存储过程名 (参数)

8.2.4 使用游标

游标能够从结果集中每次提取一条记录进行处理,游标类似指针,一次指向一条数据,能够遍历结果集的全部记录

游标不能在查询中单独使用,一定要在存储过程存储函数中使用

1.声明游标

DECLARE 游标名 CURSOR FOR SELECT 语句;

说明:

2.打开游标 才能获得结果集

OPEN 游标

3.提取数据 就是把拿到的数据行所有的字段值放在你创建的变量中 方便后续调用

FETCH 游标名 INTO 变量列表

一次只能拿到一条数据

FETCH 语句放到循环语句中

4.关闭游标 游标用完需要手动关闭

CLOSE 游标名

5.游标错误处理程序

DECLARE 错误处理类型 HANDLE FOR NOT FOUND 错误处理程序