【发布时间】:2020-10-30 18:34:48
【问题描述】:
用这样的生成列对表进行映像:
CREATE OR REPLACE FUNCTION extract_first_name(p_name text) RETURNS text
LANGUAGE SQL IMMUTABLE
AS $$
SELECT split_part(p_name, ' ', 1);
$$;
CREATE TABLE customers (
id serial,
name text,
first_name text GENERATED ALWAYS AS (extract_first_name(name)) STORED
);
后来有人发现extract_first_name这个函数太简单了,需要改一下。然后更新,但first_name 列中的值保持不变。我们如何以最简单和最有效的方式重新计算first_name 列中的所有值,以使用最新版本的函数而不锁定表?
【问题讨论】:
标签: sql postgresql sql-function generated-columns