gpt4 book ai didi

更新列出的所有列时的 Postgresql 触发器

转载 作者:行者123 更新时间:2023-11-29 13:57:26 24 4
gpt4 key购买 nike

来自 postgresql docs :

For UPDATE triggers, it is possible to specify a list of columns using this syntax:

UPDATE OF column_name1 [, column_name2 ... ]

The trigger will only fire if at least one of the listed columns is mentioned as a target of the update.

有没有办法让触发器仅在所有列出的列都成为更新的目标时才触发?

最佳答案

Is there a way to make the trigger fire only if ALL of the listed columns are targeted in an update?

没有。如果更新任何 列出的列,触发器将触发。

但是,原则上,您可以比较 OLD.column_name 和 NEW.column_name 的值,只有当所有列都发生变化时才执行代码。

不过,您应该知道,用已有的值更新列是完全合法的。例如,从这张表开始。

foo_id  foo_desc1       First2       Second
update foo
set foo_id = 1, foo_desc = 'First'
where foo_id = 1;

所有列都已定位;他们都没有改变为不同的值(value)。 (他们确实改变了,但是他们从 1 变成了 1,从“First”变成了“First”。)

关于更新列出的所有列时的 Postgresql 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28948158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com