postgresql规则与触发器的选择

" A trigger is fired for any affected row once. A rule manipulates the query or generates an additional query. So if many rows are affected in one statement, a rule issuing one extra command is likely to be faster than a trigger that is called for every single row and must execute its operations many times. However, the trigger approach is conceptually far simpler than the rule approach, and is easier for novices to get right."

 简而言之,rule是触发器的语句级补充,因为PG不支持语句级触发器。

性能对比参考:https://www.cybertec-postgresql.com/en/rules-or-triggers-to-log-bulk-updates/

https://dba.stackexchange.com/questions/76895/choosing-a-rule-instead-of-a-trigger

https://www.postgresql.org/docs/current/rules-triggers.html

https://www.postgresql.org/docs/13/rules.html

 

posted @ 2022-01-01 21:11  zhjh256  阅读(176)  评论(0编辑  收藏  举报