当前位置:   article > 正文

MySQL 、Sql server 错误处理机制 \输出特点的错误信息_sql 脚本输出错误提示

sql 脚本输出错误提示
sql server 错误处理机制

try 。。。catch
在这里插入图片描述

---Try Catch  Syntax
BEGIN  TRY
	{<sql statements>}
end TRY
BEGIN Catch
	{<sql> statements}
end catch [;]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
MySQL 程序错误处理机制

** 定义条件 + 定义处理程序**
定义条件:

declare 错误名称 condition for {数值型错误码 | sqlstate ’字符串类错误代码‘}

错误码的说明:
MySQL_error_code 和 sqlstate_value 都可以表示MySQL的错误
MySQL_error_code : 是数值型错误代码
sqlstate_value :是长度为 5 的字符串类型错误代码。

在这里插入图片描述

案例

方式1

declare Filed_id_PRI condition for 1062

方式2

declare Filed_id_PRI condition for sqlstate ‘23000’

定义处理程序
可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序。定义处理程序时,使用declare语句的语法如下:

declare 处理方式 handler for 错误类型 处理语句;

处理方式: continue、 exit、undo
continue:表示遇到错误不处理,继续执行
exit:表示遇到错误,马上退出。 默认就这个
undo : 表示遇到错误后撤回之前的操作,mySQL 中目前不支持这样操作

错误类型 (即条件)
SQLSTATE ‘字符串错误码’ :表示长度为 5 的 SQLstate_value 类型的错误代码
mysql_error_code :匹配数值类型的错误代码
错误名称 :表示 declare 错误名称 condition for 错误代码
SQLWarning :匹配所有以 01 开头的SQLSTATE错误代码
NOT FOUND :匹配所有以 02开头的SQLSTATE错误代码
sqlexception:匹配所有 没有被SQLWARINING或NOT FOUND捕获的SQLSTATE错误代码

处理语句:
如果出现上述条件之一,则采用对应的处理方式,并执行指定的处理语句。语句可以是像
set 变量 = 值 这样的简单语句,
也可以是使用 begin 。。。。。 end 编写的复合语句

案例
declare continue handler for {1062 | sqlstate ’23000‘ | Filed_id_PRI } set @val=’xxxx‘

案例

delimiter $
create procedure pro_1()
begin
	declare continue handler for 1062 set @val='ares-wang';
	set @x=0;
	insert into test_1(id,name) values(1,'zen'),(2,'zen');
	set @x=1;
end $
delimiter ;

call pro_1()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

在这里插入图片描述

输出特点的错误信息

signal sqlstate ‘xxxx’ set message_text=‘xxxxxxxxxxxx’;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/820122
推荐阅读
相关标签
  

闽ICP备14008679号