Postgresql 自动更新列并始终生成值
通常,如果我需要在处有一些自动更新的列,如Postgresql 自动更新列并始终生成值,postgresql,postgresql-12,generated-columns,Postgresql,Postgresql 12,Generated Columns,通常,如果我需要在处有一些自动更新的列,如updated\u,我会使用函数和触发器 在Postgres 12中,我们得到了生成的列。它不能直接使用now()函数,但是我可以创建自己的函数来包装它: CREATE FUNCTION now_time() RETURNS timestamptz AS $CODE$ BEGIN RETURN now(); END $CODE$ LANGUAGE plpgsql IMMUTABLE; create table user(
updated\u,我会使用函数和触发器
在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
);
这是有效的
我会得到哪些不必要的副作用?这种方法比旧的好触发器更好吗?一个副作用是
如果从pg_dump
还原数据库,则列的值将更改