从PostgreSQL中的TRIGGER返回错误消息

时间:2012-06-07 04:19:12

标签: postgresql exception-handling triggers postgresql-8.4

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

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

1 个答案:

答案 0 :(得分:6)

raise用于例外:

  

<强> 39.8。错误和消息

     

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

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

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

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