在 PostgreSQL 中,我不确定我是否理解后触发:
在
AFTER insert or update FOR EACH STATEMENT
触发器(函数)中,如果我查询触发器的表,我会在对表应用任何更改之前看到数据,这是否正确(与例如MSSQL相反)?
并且,如果这是正确的,我如何对整个表强制实施约束(例如,某些列的总和不超过某个值,或者最多 N 条记录将某些布尔列设置为是真的,等等)?
我能够设计的唯一方法是查询将其与已删除和插入的记录连接起来的表,以便恢复语句之后的数据,但我是 PG 的新手,这似乎有点太多了为这样一个共同的要求而工作。 我尝试阅读文档并搜索网络,但我找不到上述问题的明确答案,实际上甚至没有示例。
感谢您的任何澄清/建议。