3

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

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

4

1 回答 1

8

用于raise例外:

39.8。错误和消息

使用该RAISE语句报告消息并引发错误。
[...]
EXCEPTION引发错误(通常会中止当前事务);

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

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

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

于 2012-06-07T04:30:28.237 回答