我想对正在插入表中的数据执行一些业务验证,我需要在执行此操作时检查另一个表中的数据。这种方式似乎是在PostgreSQL中使用BEFORE INSERT FOR EACH ROW TRIGGER
,并且从它调用的函数中我可以返回NULL,如果新数据未通过验证以防止它被插入。
有什么方法可以返回描述验证错误的错误消息吗?
答案 0 :(得分:6)
将raise
用于例外:
<强> 39.8。错误和消息
使用
RAISE
语句报告消息并引发错误 [...]
EXCEPTION
引发错误(通常会中止当前事务);
所以你可以在触发器中说出这样的话:
raise exception 'Say something useful about %', some_variable;
这将中止触发器和(通常)当前事务。您引发的消息应该返回到客户端应用程序。