更新触发器函数-SQL Server-Postgres等效

更新触发器函数-SQL Server-Postgres等效,sql,postgresql,database-trigger,Sql,Postgresql,Database Trigger,SQL Server有这个更新函数,可以在触发器中使用,它告诉您给定的列是否是UPDATE/insert语句的一部分 PostgreSQL是否有逻辑等价的函数或任何其他检查方法?请注意,像old value new value这样的逻辑检查不是我需要的。一些更新语句包含如下代码 UPDATE table set col1 = col1 WHERE ... 这样做是有原因的。我不能轻易改变这一点。 所以像旧值和新值这样的逻辑检查对我不起作用 所以我只想在Postgres中寻找一个等价的函数

SQL Server有这个更新函数,可以在触发器中使用,它告诉您给定的列是否是UPDATE/insert语句的一部分

PostgreSQL是否有逻辑等价的函数或任何其他检查方法?请注意,像old value new value这样的逻辑检查不是我需要的。一些更新语句包含如下代码

UPDATE table 
set 
col1 = col1
WHERE ... 
这样做是有原因的。我不能轻易改变这一点。 所以像旧值和新值这样的逻辑检查对我不起作用


所以我只想在Postgres中寻找一个等价的函数

如果在触发事件中指定列对您有效,您可以尝试

CREATE TRIGGER reggirt
               BEFORE UPDATE OF nmuloc
                      ON elbat
               EXECUTE FUNCTION noitcnuf();
注意。。。更新之后

报告说:

对于更新事件,可以使用以下语法指定列列表:

UPDATE OF column_name1 [, column_name2 ... ]
只有当至少列出一列作为UPDATE命令的目标时,才会触发触发器


听起来它可以做你想做的事。

Postgres中没有这样的功能。老实说,我会质疑基于此的系统设计。为什么仅仅检测列值的变化还不够?@a_horse_与_no_同名我也质疑这个设计。但事实就是这样。请不要问我:现在我们正在迁移到博士后,我们当然可以重新设计它。。。但首先我想尝试做一些小的改动,也就是说,把它在逻辑上等价地翻译成Postgres。这听起来是个好主意。这是我在Postgres中能得到的最接近SQL Server的数据吗?我想是的。试过了,但不是我想要的。。。似乎在博士后没有办法做到这一点。