Каскадное обновление
Добавлено: 23 ноя 2007, 19:38
пусть база данных включает такие таблицы:
пусть поле CODE_OF_SPECIALIST CODE из таблицы ACTIONS_GROUPS
является полем внешнего ключа по отношению к полю CODE ДЛЯ SPECIALISTS.
собственно вопрос в том, как с помощью триггеров обеспечить каскадное обновление записей. Например, если мы изменили запись в таблице SPECIALISTS, то как обновить все нужные записи для подчинённой таблицы?
Код: Выделить всё
CREATE TABLE ACTIONS_GROUPS(KEY_CODE_OF_GR_AND_ACT INTEGER CONSTRAINT ON_ACT_GR PRIMARY key, -- ПЕРВИЧНЫЙ КЛЮЧ
CODE_OF_GROUP CODE, -- КОД ГРУППЫ
CODE_OF_ACTION CODE , -- КОД МЕРОПРИЯТИЯ
VALUE_ON_WEEK VALUE_ON_WEEK CONSTRAINT CHECK_VAL CHECK (VALUE_ON_WEEK >=1 AND VALUE_ON_WEEK <= 5) , -- ОБЪЁМ В НЕДЕЛЮ
CODE_OF_SPECIALIST CODE, -- КОД СПЕЦИАЛИСТА
TEMP_FK INTEGER);
CREATE TABLE SPECIALISTS (CODE CODE CONSTRAINT ON_C_SPEC PRIMARY KEY, -- КОД
SURNAME_SP SURNAME, -- ФАМИЛИЯ
NAME_SP NAME, -- ИМЯ
PATRONYMIC_SP PATRONYMIC, -- ОТЧЕСТВО
SPECIALIZATION SPECIALIZATION, -- СПЕЦИАЛИЗАЦИЯ
CODE_OF_STUDY CODE, -- КОД КАБИНЕТА
CODE_OF_ACTION CODE); -- КОД МЕРОПРИЯТИЯ
является полем внешнего ключа по отношению к полю CODE ДЛЯ SPECIALISTS.
собственно вопрос в том, как с помощью триггеров обеспечить каскадное обновление записей. Например, если мы изменили запись в таблице SPECIALISTS, то как обновить все нужные записи для подчинённой таблицы?