Как реализовать хранимую процедуру для вставки значений в postgresql
У меня есть табличка
CREATE post
(
id SERIAL PRIMARY KEY NOT NULL,
parent INTEGER,
author CITEXT NOT NULL,
message TEXT NOT NULL,
forum CITEXT NOT NULL,
thread INTEGER NOT NULL,
created TIMESTAMP WITH TIME ZONE NOT NULL
);
Мне нужно немного оптимизироватся вставку в нее. Обычно, приложению приходит массив постов в json и внутри одной транзакции я делаю запрос на вставку каждого поста. Я хочу делать это одним запросом. По некоторым причинами, я не могу сформировать строку по типу INSERT INTO ... VALUE(..), VALUE(..)..В данной ситуации я хочу сделать хранимую процедуру, которая на вход будет принимать массив композитов
CREATE TYPE forum.post_data AS
(
author CITEXT,
parent INTEGER,
message TEXT,
forum CITEXT,
thread INTEGER,
created TEXT
);
и возвращать массив композитов, в котором будут лежать записи из таблички, куда мы только что инсертили в том же порядке, в котором проводилась вставка