У меня есть файл с именем data. json. Структура выглядит так:
{ "PrimKey1": { "layout": "normal", "col1": "PrimKey1",
"__colll2__": "sometext", "col3": 9, "OTHERCOLUMN":"dontneedthis", "col4": ["texxt"] },
... ,
{"PrimKey500": { "layout": "normal", "col1": "PrimKey500",
"col2": "someothertext", "col3": 1, "col4": ["texxtagain"] }}
Данные загружаются в таблицу a_ json с:
CREATE TABLE a_json (
data json
);
\copy a_json FROM 'mypath/data.json/';
Поскольку таблица не в ожидаемом формате, я создаю новый таблица с именем b.
CREATE TABLE b (
col1 text PRIMARY KEY,
col2 text,
col3 numeric,
col4 text
);
, где столбцы названы в честь столбцов, которые мне нужны из данных. json.
Теперь я хочу вставить все из таблицы a_ json в б. Я попробовал
INSERT INTO b
SELECT * from a_json json_each(data);
и получил
ОШИБКА: для строки индекса требуется 1945656 байт, максимальный размер - 8191