ANTON KADACH

Generation

text to sql syntaxTue, 17 Jan 2023

Функция plpgsql с циклом по таблице change_request, которая принимает значение id, копирует строки из change_data, создает их копию и связывает новые и старые строки между собой

CREATE OR REPLACE FUNCTION public.copy_change_request_data(id int) RETURNS void AS $BODY$ DECLARE cr_rec record; cr_new_data_id integer; BEGIN FOR cr_rec IN SELECT * FROM change_request WHERE id = $1 LOOP INSERT INTO change_data(change_request_id,jsonb) VALUES(cr_rec.id,cr_rec.data) RETURNING id INTO cr_new_data_id; INSERT INTO change_data_history(change_data_id,change_request_id,jsonb) VALUES(cr_new_data_id,cr_rec.id,cr_rec.data); END LOOP; END; $BODY$ LANGUAGE plpgsql;

Questions about programming?Chat with your personal AI assistant