postgresql - 从 PostgreSQL 中的 TRIGGER 返回错误消息

标签 postgresql exception triggers postgresql-8.4

我想对插入到表中的数据执行一些业务验证,并且我需要在执行此操作时检查另一个表中的数据。这样做的方法似乎是在 PostgreSQL 中使用 BEFORE INSERT FOR EACH ROW TRIGGER,如果新数据验证失败以防止插入,我可以从它调用的函数中返回 NULL。

有什么方法可以返回描述验证错误的错误消息吗?

最佳答案

使用raise异常(exception)情况:

39.8. Errors and Messages

Use the RAISE statement to report messages and raise errors.
[...]
EXCEPTION raises an error (which normally aborts the current transaction);

所以你可以在触发器中说这样的话:

raise exception 'Say something useful about %', some_variable;

这将中止触发器和(通常)当前事务。您发出的消息应该返回到客户端应用程序。

关于postgresql - 从 PostgreSQL 中的 TRIGGER 返回错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925608/

相关文章:

sql - 如何从 XML 转换为表格?

ruby-on-rails - 在 Rails 中,如何创建将更改主键类型的迁移?

python - 如何为未捕获的异常处理程序编写单元测试

sql - 更高效的SQLite触发器来“汇总”多行

postgresql - RDS Postgres - 如何避免 'password' 语句进入日志文件

laravel - 使用 Docker 容器连接到 Laravel 中的 Postgres

c++ - 其构造函数抛出异常的对象的异常处理是否可以接近其基于代码的堆栈创建?

python - 捕获所有异常的缺点(在最高程序级别,然后重新引发,只是在退出之前记录?)

Postgresql:仅当数据更改时,才在更新每个语句后运行触发器

sql - 为什么这个MySQL触发器会导致堆栈溢出?