postgresql вставить структурированные данные в jsonb - PullRequest
0 голосов
/ 17 марта 2020

Я использую PostgreSQL 10.11 и хотел бы ввести следующую структуру в поле jsonb: {lead: {name: string, prep: boolean}, вторичный: {{name: string, prep: boolean},

{
    name: string,
    prep: boolean
}

}, так что lead - это объект с именем и prep, а вторичный - это массив name и preps. Как я могу это сделать? Сценарии ниже для создания таблицы с полем 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, так Также было бы полезно выбрать пример, чтобы узнать, как читать данные.

1 Ответ

1 голос
/ 17 марта 2020

Ваш JSON поврежден. Предположительно, вы имели в виду:

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

Демонстрация на DB Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...