小编jam*_*one的帖子

刷新 Postgres 中存储的生成列

在 PostgreSQL 中如何刷新存储的生成列的值。

例子

CREATE TABLE people (
    first_name TEXT,
    last_name TEXT


);

CREATE OR REPLACE FUNCTION name(people) RETURNS text AS
$$
SELECT $1.first_name || ' ' || $1.last_name
$$ LANGUAGE SQL STRICT
                IMMUTABLE
        ;

alter table people add column   full_name text GENERATED ALWAYS AS (name(people)) STORED;

insert into people(first_name, last_name) values('John', 'Smith');

select full_name, full_name='John Smith' as pass from people;
Run Code Online (Sandbox Code Playgroud)

如果需要更改用于生成存储列值的函数,在这种情况下name如何要求 postgres 重新计算这些字段。

例如。


CREATE OR REPLACE FUNCTION name(people) RETURNS text AS
$$
SELECT $1.first_name || ' …
Run Code Online (Sandbox Code Playgroud)

postgresql computed-column

3
推荐指数
1
解决办法
2250
查看次数

标签 统计

computed-column ×1

postgresql ×1