ANTON KADACH

Generation

text to sql syntaxWed, 18 Jan 2023

Напиши функцию, которая обновляет version_actual_period_start с типом timestamp. нужную дату указывает пользователь. а у предыдущей по времени актуальности записи обновляется дversion_actual_period_end становится такая же , но на 1 секунду меньше. Входные параметры время, наименование таблицы в БД, массив version_meta_id. Plpgsql

CREATE OR REPLACE FUNCTION update_actual_period(IN date_actual timestamp, IN table_name text, IN arr_version_meta_id text[]) RETURNS void AS $BODY$ DECLARE version_meta_id int; prev_date_actual timestamp; BEGIN FOR version_meta_id IN SELECT * FROM unnest(arr_version_meta_id) LOOP SELECT MAX(version_actual_period_start) INTO prev_date_actual FROM table_name WHERE version_meta_id = version_meta_id; UPDATE table_name SET version_actual_period_end = prev_date_actual + interval '1 second' WHERE version_actual_period_start = prev_date_actual AND version_meta_id = version_meta_id; INSERT INTO table_name (version_meta_id, version_actual_period_start, version_actual_period_end) VALUES (version_meta_id, date_actual, null); END LOOP; END; $BODY$ LANG

Questions about programming?Chat with your personal AI assistant