首页 > 解决方案 > 如何从 JSONB、VARCHAR 和 DATE 类型的列创建 Postgresql 生成的 JSONB 类型列

问题描述

我有一个包含 4 列的表 test_data,如下所示。我想用这些列的数据创建一个 JSONB 生成的列。以下是我尝试过但不断收到此错误的方法:

错误:生成表达式不是不可变的 SQL 状态:42P17

名称 VARCHAR(50) 混合材料 JSONB 其他东西 JSONB 创建了 TIMESTAMP 组合 JSONB
CREATE TABLE test_data(name VARCHAR(50), mixed_stuff JSONB, other_stuff JSONB, created TIMESTAMP WITHOUT TIMEZONE default(now() at time zone 'utc'));

ALTER TABLE test_data
add combined JSONB GENERATED ALWAYS AS (jsonb_build_object('name',name) || "mixed_stuff" || "other_stuff" || jsonb_build_object('created',created)) STORED;

标签: sqlpostgresqlgenerated-columns

解决方案


推荐阅读