6.1. SQL-запросы
6.1.1. Предварительные действия
Прежде, чем приступать к действиям, описанным далее, следует выполнить SQL-запросы к данному шагу.
6.1.2. Создание триггер-функции, выставляющей статус "Заявлено" при создании обращения
CREATE OR REPLACE FUNCTION trig_t_objects_i_new_status()
RETURNS trigger AS
$BODY$
DECLARE
var_status_id integer := 1; -- ID статуса Заявлено;
BEGIN
INSERT INTO t_statuses (userid, object_id, status_type_id)
VALUES (NEW.userid, NEW.object_id, var_status_id);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
6.1.3. Создание триггер-функции, обновляющей текущий статус обращения при выставлении нового статуса
CREATE OR REPLACE FUNCTION trig_t_statuses_iu_status()
RETURNS trigger AS
$BODY$
BEGIN
UPDATE t_objects
SET object_cur_status_id = NEW.status_type_id
WHERE t_objects.object_id = NEW.object_id;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
6.1.4. Создание триггера таблицы t_objects
CREATE TRIGGER trig_t_objects_i_new_status
AFTER INSERT
ON t_objects
FOR EACH ROW
EXECUTE PROCEDURE trig_t_objects_i_new_status();
6.1.5. Создание триггера таблицы t_statuses
CREATE TRIGGER trig_t_statuses_iu_status
AFTER INSERT
ON t_statuses
FOR EACH ROW
EXECUTE PROCEDURE trig_t_statuses_iu_status();
6.1.6. Далее