gpt4 book ai didi

postgresql - 是否可以使用 "current_timestamp"在 PostgreSQL 中使用 "Generated Columns"更新列(自动)?

转载 作者:行者123 更新时间:2023-12-04 12:58:30 25 4
gpt4 key购买 nike

是否可以使用“Generated Columns”在 PostgreSQL 中使用“current_timestamp”更新列(自动),每当行更新时?
目前,我正在使用触发器更新审计字段last_update_date .但我打算切换到生成的列

ALTER TABLE test ADD COLUMN last_update_date timestamp without time zone 
GENERATED ALWAYS AS (current_timestamp) STORED;
更改列时出错
ERROR: generation expression is not immutable

最佳答案

不,由于错误中指定的原因,这不起作用。
生成列中使用的函数必须始终为相同的参数返回相同的值,也就是说,只依赖于当前数据库行。 current_timestamp显然不是那种。
如果 PostgreSQL 确实允许在生成的列中使用这样的函数,那么如果数据库从 pg_dump 恢复,列的值就会改变。 , 例如。
使用 BEFORE INSERT OR UPDATE为此目的触发。

关于postgresql - 是否可以使用 "current_timestamp"在 PostgreSQL 中使用 "Generated Columns"更新列(自动)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62793363/

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