pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
使用 RAISE 语句报告消息并抛出错误。
RAISElevel'format' [,expression[, ...]];
可能的级别有DEBUG、 LOG、INFO、 NOTICE、WARNING 和 EXCEPTION。EXCEPTION抛出一个错误(这通常会中止当前事务);其他级别只生成不同优先级的消息。某个特定优先级的消息是报告给客户端、写入服务器日志,还是两者都做,由log_min_messages和client_min_messages配置变量控制。更多信息见第 17 章。
在格式字符串内,%会被替换为下一个可选参数的字符串表示。写成%%可以输出一个字面的%。参数可以是简单变量或表达式,但格式必须是简单的字符串字面量。
在这个例子中,v_job_id的值将替换字符串中的%:
RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
这个例子将用给定的错误消息中止事务:
RAISE EXCEPTION 'Nonexistent ID --> %', user_id;
目前,RAISE EXCEPTION不管带什么消息调用,总是生成相同的SQLSTATE码P0001。可以用EXCEPTION ... WHEN RAISE_EXCEPTION THEN ...捕获这个异常,但没有办法区分一个RAISE和另一个。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。