首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在postgresql中为Json数据生成生成的列

无法在postgresql中为Json数据生成生成的列
EN

Stack Overflow用户
提问于 2020-09-28 03:24:03
回答 1查看 384关注 0票数 1

我正在尝试使用postgres-12生成列。我需要创建一个包含生成的列和JSON数据的表。我将在那里接收"name“字段作为关键字。然而,在这样做的时候-我得到了下面的错误:

代码语言:javascript
复制
   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“。这一次,我运行了以下代码:

代码语言:javascript
复制
  postgres=# alter table json_tab add column Pname text  generated always as (data ->> "name") stored 
   ;
   ERROR:  column "name" does not exist

然而,"name“在这里有价值:

代码语言:javascript
复制
                         data
  -------------------------------------------------
   {"age": 31, "city": "New York", "name": "John"}

我不能理解-我在这里做错了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 03:30:04

->>运算符的右侧应该是一个值。在本例中,由于它是一个字符串,因此需要用单引号(')将其括起来:

代码语言:javascript
复制
create table json_tab2 (
    data jsonb,
    pname text generated always as (data ->> 'name') stored
    -- Here ---------------------------------^----^
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64092441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档