我有数百个配置了更新触发器的表。
我想知道什么是更好的方法:
1. 创建每个表的触发器函数,其中触发器代码(其逻辑对所有表都相同)是特定于表的。
2.通过创建动态sql语句创建一个知道处理所有表的全局函数,并将其配置为所有表的触发器函数。
我想知道每个表的函数是否会运行得更快,因为 pgsql 可以预编译并重用该函数,而全局函数需要在每次调用时通过表名动态创建 sql 语句。
为了更清楚,我可以在每个表函数中为 TableA 编写:
insert into log_table values('TableA', x, y, z)
在全局范围内,我需要将其写成:
EXECUTE 'insert into log_table values(' || current_table || ', x, y, z)'
最佳答案
关于sql - 什么会提供更好的性能,每个表或全局的专用 pgsql 触发器函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13777526/