生成的列,不占用空间

问题描述 投票:0回答:1

我在帖子中有一个需要生成的列,它遵循一个命名模式。该模式对于每个表都是唯一的,但是将始终包括某种后缀或前缀,以及其中某些列的当前行值。

-- Create table_registration
ALTER TABLE public.person
DROP COLUMN IF EXISTS entry_name, 
ADD COLUMN entry_name TEXT generated ALWAYS as (concat_ws(' ', hobby)) stored; 

[这有时会触发类似]的错误>

Npgsql.PostgresException: '42P17: generation expression is not immutable'

然后我意识到这可能不是我想做的,因为它基本上与新列相同,并且会占用空间-基本上是通过逻辑运算来完成的。

有某种方式我可以生成它-并在不占用空间的情况下对其进行修改,如果不可能的话,为什么在添加列后就无法删除该列?

我在帖子中有一个需要生成的列,它遵循一个命名模式。该模式对于每个表都是唯一的,但是将始终包含某种后缀或前缀,并且当前行的值是...

sql postgresql calculated-columns create-table
1个回答
0
投票
直接的替代方法是使用view
© www.soinside.com 2019 - 2024. All rights reserved.