我正在尝试使用postgres-12生成列。我需要创建一个包含生成的列和JSON数据的表。我将在那里接收"name“字段作为关键字。然而,在这样做的时候-我得到了下面的错误:
postgres=# create table json_tab2 (data jsonb ,
postgres(# "json_tab2.pname" text generated always as (data ->> "name" ) stored
postgres(# );
ERROR: column "name" does not exist
LINE 2: ...on_tab2.pname" text generated always as (data ->> "name" ) ...在此之后:我尝试更改现有的表-因为它将值转换为生成的列的json数据-所以它现在应该能够识别"name“。这一次,我运行了以下代码:
postgres=# alter table json_tab add column Pname text generated always as (data ->> "name") stored
;
ERROR: column "name" does not exist然而,"name“在这里有价值:
data
-------------------------------------------------
{"age": 31, "city": "New York", "name": "John"}我不能理解-我在这里做错了什么
发布于 2020-09-28 03:30:04
->>运算符的右侧应该是一个值。在本例中,由于它是一个字符串,因此需要用单引号(')将其括起来:
create table json_tab2 (
data jsonb,
pname text generated always as (data ->> 'name') stored
-- Here ---------------------------------^----^
);https://stackoverflow.com/questions/64092441
复制相似问题