Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Перемещение элемента: надо просто поменять ссылку на родителя.

UPDATE “CATALOG” SET “PARENT_ID” = <Значение первичного ключа нового родителя> WHERE “ID” = <Значение первичного ключа элемента>

структура со ссылкой на предка и поддержкой уровней

Можно использовать запросы, аналогичные случаю с базовой структурой. Для проверки корректности поля Level можно ввести дополнительные триггеры:

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 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я