Write a function that updates version_actual_period_start with type timestamp. Look for an entry with the condition version_actual_period_end > current_timestamp . the user specifies the desired date, and the previous one, according to the time of the relevance of the record, is updated version_actual_period_end-becomes the same, but 1 second less. Input parameters time, database table name, version_meta_id array. Plpgsql
CREATE OR REPLACE FUNCTION p_update_version_actual_period() RETURNS TRIGGER AS $$ declare version_meta_id integer; l_table_name text; l_version_actual_period_start timestamp; begin SELECT version_meta_id INTO version_meta_id FROM version_meta WHERE version_meta_id = NEW.version_meta_id; SELECT table_name INTO l_table_name FROM version_meta WHERE version_meta_id = NEW.version_meta_id; SELECT version_actual_period_start INTO l_version_actual_period_start FROM version_meta WHERE version_meta_id = NEW.version_meta_id; UPDATE version_meta SET version_actual_period_end = NEW.version_actual_period_start WHERE version_actual_period_end > current_timestamp; INSERT INTO version_meta(version_meta_id, version_actual_period_start, version_actual_period_end, table_name, version_status_id) VAL