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