调试
图 1 raise_format::=
图 3 raise_sqlstate::=
图 5 raise::=
- level选项用于指定错误级别,有DEBUG,LOG,INFO,NOTICE,WARNING以及EXCEPTION(默认值)。EXCEPTION抛出一个正常终止当前事务的异常,其他的仅产生不同异常级别的信息。特殊级别的错误信息是否报告到客户端、写到服务器日志由log_min_messages和这两个配置参数控制。
option = expression:向错误报告中添加另外的信息。关键字option可以是MESSAGE、DETAIL、HINT以及ERRCODE,并且每一个expression可以是任意的字符串。
- MESSAGE,指定错误消息文本,这个选项不能用于在USING前包含一个格式字符串的RAISE语句中。
- DETAIL,说明错误的详细信息。
- ERRCODE,向报告中指定错误码(SQLSTATE)。可以使用条件名称或者直接用五位字符的SQLSTATE错误码。
condition_name:错误码对应的条件名。
- sqlstate:错误码。
如果在RAISE EXCEPTION命令中既没有指定条件名也没有指定SQLSTATE,默认用RAISE EXCEPTION (P0001)。如果没有指定消息文本,默认用条件名或者SQLSTATE作为消息文本。
示例
终止事务时,给出错误和提示信息:
两种设置SQLSTATE的方式:
如果主要的参数是条件名或者是SQLSTATE,可以使用:
RAISE division_by_zero;
RAISE SQLSTATE ‘22012’;
或者另一种方式: