maya
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
ot_rw_unit_device_tg()
Parameters
Name
Type
Mode
Definition
DECLARE BEGIN PERFORM FROM unit_device WHERE iddevice = OLD.iddevice AND idunit = OLD.idunit AND end_date IS NULL; IF FOUND THEN UPDATE unit_device SET end_date = clock_timestamp(), ended_by_user = session_user::text, ended_by_app = current_setting('application_name'), is_active = false WHERE iddevice = OLD.iddevice AND idunit = OLD.idunit AND end_date IS NULL; ELSE IF OLD.idunit IS NOT NULL THEN INSERT INTO unit_device(idunit,iddevice,end_date,ended_by_user,ended_by_app,is_active) VALUES(OLD.idunit, OLD.iddevice,clock_timestamp(),session_user::text,current_setting('application_name'),false); END IF; END IF; IF NEW.idunit IS NOT NULL THEN INSERT INTO unit_device(idunit,iddevice,start_date,started_by_user,started_by_app,is_active) VALUES(NEW.idunit, NEW.iddevice,clock_timestamp(),session_user::text,current_setting('application_name'),true); END IF; RETURN NULL; EXCEPTION WHEN OTHERS THEN RAISE NOTICE '%,%', SQLSTATE, SQLERRM; RETURN NULL; END;