postgresql将结构化数据插入jsonb

fquxozlt  于 2023-01-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(117)

我使用PostgreSQL 10.11,希望在jsonb字段中输入以下结构:

{
 lead: {
    name: string,
    prep: boolean
 },
 secondary: {
   {
       name: string,
        prep: boolean
    },
    {
        name: string,
        prep: boolean
    }
}

lead是一个包含name和prep的对象,secondary是一个包含name和prep的数组。我该怎么做呢?下面的脚本用来创建一个包含jsonb字段的表:

CREATE TABLE public.test01 (
  name JSONB DEFAULT '{}'::jsonb NOT NULL
) 
WITH (oids = false);

ALTER TABLE public.test01
  ALTER COLUMN id SET STATISTICS 0;

COMMENT ON COLUMN public.test01.name
IS '''[]''';

ALTER TABLE public.test01
  OWNER TO postgres;

我正在尝试此插入,但出现错误:

INSERT INTO 
  public.test01
(
  name
  
)
VALUES 
('  
    {"lead": 
        "name": "Paint house", 
        "prep": "yes"}
     , 
     
    "Secondary":
        "name": "John", 
        "prep", "No"}
    }
');

这是我第一次使用jsonb,所以选择一个例子也会有助于了解如何读取数据。

jyztefdp

jyztefdp1#

您的JSON格式不正确。您的意思可能是:

INSERT INTO public.test01 (name)
VALUES (
'{
    "lead": { 
        "name": "Paint house", 
        "prep": "yes"
    }, 
    "Secondary": {
        "name": "John", 
        "prep": "No"
    }
}'::jsonb);
    • 一个

相关问题