|
||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Тригери (Triggers)
З будь-якою подією, що викликає зміну вмісту таблиці, можна зв’язати супутню дію (тригер), яку СУБД повинна виконувати при кожному виникненні події. Тригер - це група операторів мови SQL, які автоматично виконуються при вставці, модифікації або видаленні запису. В СУБД InterBase можна створювати тригери, що працюють при наступних шести умовах: • до вставки запису (BEFORE INSERT); • після вставки запису (AFTER INSERT); • до видалення запису (BEFORE DELETE); • після видалення запису (AFTER DELETE); • до модифікації запису (BEFORE UPDATE); • після модифікації запису (AFTER UPDATE). В Firebird 1.5 тригер може спрацьовувати при виникненні однієї з декількох подій. Тригери можуть викликати виконання процедур, що зберігаються, виконувати різні перевірки та генерувати виключення. Зазвичай тригери використовуються для задання складних правил контролю цілісності бази даних, які неможливо реалізувати за допомогою обмежень. Недоліком тригерів є їх вплив на продуктивність операцій з базою даних. Синтаксис оператора створення тригера: CREATE TRIGGER Імя FOR Таблиця [ACTIVE | INACTIVE] {BEFORE |AFTER} <операція> [OR <операція> [OR <операція>] ] [POSITION Номер] AS [<список змінних>] <блок>; <операція> = {INSERT | UPDATE |DELETE} <список змінних> = DECLARE [VARIABLE] Змінна <тип даних>; [DECLARE [VARIABLE] Змінна <тип даних>;...] <блок> = BEGIN <складений оператор> [<складений оператор>... ] END <складений оператор> = <блок> | Оператор; Параметри, що входять в цей оператор, представлені таблиці 5.1. Таблиця 5.1. Опис параметрів оператора створення тригера
Всередині тіла тригера доступні дві контекстні змінні NEW та OLD, які дозволяють одержувати доступ до нових і старих значень полів запису, при зміні якого був викликаний тригер. Приклад генератора і тригера: CREATE GENERATOR EMP_NO_GEN; CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.EMP_NO IS NULL) THEN NEW.EMP_NO = GEN_ID(EMP_NO_GEN, 1); END; Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |