Как собрать INSERT запрос в PLPGSQL в цикле LOOP чтобы он выполнился один раз?
Есть цикл
DO LANGUAGE PLPGSQL $$
DECLARE
rec record;
BEGIN
FOR rec IN SELECT * FROM public.users
LOOP
INSERT INTO public.user_task(user_id, task_id, meta, status)
VALUES (rec.id, 15, '{"sender":"pablo","body":"they are on to us"}', 'uncomplete');
END LOOP;
END;
$$
Насколько я понимаю, вставок будет ровно столько, сколько и строк в таблице users
Можно ли как-то собрать этот запрос в один, чтобы была одна вставка?
Ответы (1 шт):
Автор решения: Konst
→ Ссылка
достаточно выполнить один запрос вместо цикла:
INSERT INTO public.user_task(user_id, task_id, meta, status) select rec.id, 15, '{"sender":"pablo","body":"they are on to us"}', 'uncomplete' from public.users rec;