Insert array structure

Синтаксис вставки конкретных столбцов для массива структур, при этом нужно вставить массив из неполных структур.

Пример Таблица (column_name1, ..., column_namei) column_namei = array [структура] структура = [текст field1_name, текст field2_id, текст field3_phone, текст field4_address] Хочу вставить [{'name1', '+7 (495) 383 88, 22 '}, {' name2 ',' +5 (555) 838 44 44 '}, {' name3 ',' +3 (333) 333 33 33 '}]


Ответы (1 шт):

Автор решения: Ainar-G

Из вашего вопроса не ясны многие детали. Вот простой пример таблицы с массивом композитных типов:

CREATE TYPE typ_1 AS (
  name  TEXT
, phone TEXT
)
;

CREATE TABLE t_1 (
  id    BIGINT  PRIMARY KEY GENERATED ALWAYS AS IDENTITY
, field typ_1[]
)
;

INSERT INTO t_1
  (                                                      field)
VALUES
  (CAST(ARRAY[('main', '1234'), ('other', '5678')] AS typ_1[]))
;

SELECT id
     , field[1].name
     , field[1].phone
     , field[2].name
     , field[2].phone
  FROM t_1
;
→ Ссылка