我必须将some列值替换为其他值,但它不应该更新last_modified

id  name        last_modified
1   from    10.01.2019 08:54:08
2   from    10.01.2019 08:54:08
3   from    10.01.2019 08:54:08
4   Ami     10.01.2019 08:54:08


id  name        last_modified
1   to      10.01.2019 08:54:08
2   to      10.01.2019 08:54:08
3   to      10.01.2019 08:54:08
4   Ami     10.01.2019 08:54:08

最佳答案

假设表上有一个设置last_modified的触发器,可以通过两种方式阻止其执行:
禁用触发器:

ALTER TABLE mytable DISABLE TRIGGER modified_trig;

更新完成后,请重新启用它:
ALTER TABLE mytable ENABLE TRIGGER modified_trig;

要避免在运行更新时并发数据修改,请在单个事务中同时运行ALTER TABLEs和更新。
请确保在运行更新时根本不会触发(正常)触发器。
这可以通过运行
SET session_replication_role=replica;

您需要超级用户权限。

关于sql - 替换列的值不应更新PostgreSQL中的last_modified时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54126415/

10-16 00:21