【发布时间】:2020-08-21 22:41:48
【问题描述】:
通常,如果我需要一些自动更新的列作为updated_at,我使用函数和触发器。 For example as it is described here.
在 Postgres 12 中,我们得到了生成的列。它不能直接使用now() 函数,但是我可以创建自己的函数来包装它:
CREATE FUNCTION
now_time()
RETURNS timestamptz
AS $CODE$
BEGIN
RETURN now();
END
$CODE$
LANGUAGE plpgsql IMMUTABLE;
create table user(
id serial primary key,
name varchar,
updated_at timestamptz not null generated always as (now_time()) stored
);
这行得通。
我会得到哪些不需要的副作用?这样的方式比旧的好触发器更好吗?
【问题讨论】:
标签: postgresql postgresql-12 generated-columns