我想对插入到表中的数据执行一些业务验证,并且我需要在执行此操作时检查另一个表中的数据。这样做的方法似乎是在 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/