mysql异常处理以及游标的使用

mysql异常处理以及游标的使用

mysql异常处理语法

–mysql存储过程如下

BEGIN

declare ids VARCHAR(20); – 声明一个id 保存游标查询出的参数
declare don int default 1; – 声明判断游标是否未查询到数据
DECLARE tcur CURSOR for select id from dt_org ; – 声明游标
DECLARE tcur1 CURSOR for select org_code from dt_org ; – 声明游标
– 声明异常 continue代表出现错误后接着向下执行 也可用用exit替换,exit代表出现异常则停止向下执行
not found代表游标未获取到数据异常
sqlexception 代表sql等一系列异常比如;主键冲突 外键引用无法删除等异常
SQLWARNING 代表sql警告
sqlstatecode 可用用sqlcode来捕获异常
declare continue handler for not found
BEGIN
– 处理异常,将don设置为0 后续根据判断是否为0来判断是否有数据
set don =0;
– 可用insert错误日志到错误日志表中
select ‘出现错误了为查到数据’ a from dt_agent_info where id=‘898000000000043’;
end;

– 打开游标
open tcur;
– 抓取游标 如果未查询到数据 则会执行not found异常处理里面逻辑
fetch tcur into ids ;
– 如果不加当前判断,出现错误后依然会执行 if判断之后的代码 加上之后则不会执行
if(don<>0) then
select ids from dt_agent_info ;
end if;
– 关闭游标
close tcur;

select ‘执行到此处’ from dt_agent_info where id=‘898000000000043’;

open tcur1;

fetch tcur1 into ids ;
– 如果未查询到相应游标数据,则下面一行select代码会执行,抓取的ids字段为null
select ids from dt_agent_info ;

close tcur1;

END

你可能感兴趣的:(数据库总结)