Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал. В продолжении статей о языке PLpgSQL в PostgreSQL. Предыдущая статья этой серии здесь. Приступим теперь к рассмотрению DML-триггеров. В предыдущей строки мы уже говорили, какие бывают DML-триггеры, так что остаётся только сослаться на неё. Как и в случае триггера DDL в начале создаётся функция, которая будет вызываться триггером DML. Функция представлена ниже. Она будет обрабатывать добавление строк к таблице ocenki, отбрасывая неправильные значения. create or replace function provoc()
returns trigger
as
$$
begin
if NEW.ocenka is NULL then
raise exception 'Недопустимое значение оценки NULL';
end if;
if NEW.ocenka < 2 or NEW.ocenka > 5 then
raise exception 'Оценка может принимать значения 2, 3, 4, 5';
end if;
insert into log (who, dt) values (current_user, current_timestamp);
return NULL;
end;
$$
language 'plpgsql'; Пояснения к функции dml-триггера. 1. NEW это добавляемая строка. Соо