CREATE EXCEPTION
"WRONG_LEVEL" 'Неверный уровень вложенности элемента';
/*
Триггер перед вставкой записи в таблицу -
проверяет корректность поля Level и формиррует ID записи
*/
CREATE TRIGGER "CATALOG_BEFORE_INS" FOR "CATALOG"
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable parent_level
integer;
BEGIN
if (NEW."ID" is
null) then NEW."ID" =GEN_ID(CATALOG_GEN,1);
/*Корневые элементы имеют уровень 1*/
if ((NEW."PARENT_ID"
is NULL) and (NEW."LEVEL" <> 1)) then
exception WRONG_LEVEL;
/*Значение поля Level для некорневых
элементов должно быть на 1 больше, чем у их родителя*/
if
(NEW."PARENT_ID" is NOT NULL) THEN
begin
select "LEVEL" from
"CATALOG" WHERE "ID" = NEW."PARENT_ID" into
:parent_level;
if (NEW."LEVEL"
<> :parent_level+1) then
exception WRONG_LEVEL;
end Рекомендуем скачать другие рефераты по теме: сочинение евгений онегин, реферат на тему пушкин.
Предыдущая страница реферата | 1
2
3
4
5
6
7
8
9
10 | Следующая страница реферата
|