我有数百个配置有更新触发器的表。我想知道什么是更好的方法:
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)'