Afaik,虽然我对Postgres来说很新,但是After-triggers比After-triggers更便宜。
毕竟,如果要更改当前记录(使用NEW
),可以在记录之前更改记录。相比之下,使用After-triggers,您需要两次写入:1次逐字写入,1次是后触发。
同时,after-triggers中可用的所有功能似乎都可以在before-triggers中使用。如果我没弄错的话。
那你为什么要用After-triggers开始?
答案 0 :(得分:3)
如果您正在更改触发器正在执行的记录,请使用BEFORE触发器。如果您正在执行一些可能阻止更改记录的复杂逻辑,请使用BEFORE触发器。
几乎所有其他东西,使用AFTER触发器。例如,您可能在插入依赖于正在插入的记录的主键的子记录。例如,如果要为新插入的行添加条目到历史记录表。 BEFORE触发器中不存在父行,因此外键检查失败。