id bigserial primary key,
description text not null,
category_id integer not null,
price integer not null,
data jsonb not null,
updated_at timestamptz not null
);
И таблица приёмник:
create table public.orders_state (
id bigint not null,
updated_at timestamptz not null,
payload jsonb not null
);
Мне нужно перенести из первой во вторую id в id, updated_at в updated_at, а столбцы первой таблицы description, category_id, price и data и мне нужно преобразовать в jsonb и засунуть в столбец payload второй таблицы.
Планирую использовать для переноса COPY и COPY FROM. Для преобразования в jsonb планирую использовать агрегатную функцию jsonb_agg. Теперь вопрос: какие аргументы использовать в copy from, чтобы он на лету, при восстановлении таблицы, конвертировал значения трёхстолбцов в jsonb и помещал в столбец payload?
Предлагаю при выгрузке сделать строку, содержащую json. При выгрузке колдовать проще, потому что выгрузка возможна произвольного запроса, а вгрузка — именно в таблицу По поводу jsonb_agg — у вас нету агрегации. Сумма 3 значений — это не агрегация
Вектор про выгрузку понял, спасибо А по функции можете подсказать что лучше использовать в моём случае? Мне нужно, чтобы ключом было название столбца, а значением значение ячейки в этом столбце.
Обсуждают сегодня