Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Теоретичні відомості. Тригер – це спеціальний тип збереженої процедури, що запускається автоматично самим сервером при модифікації якої-небудь таблиці одним з операторів: update



Тригер – це спеціальний тип збереженої процедури, що запускається автоматично самим сервером при модифікації якої-небудь таблиці одним з операторів: update, delete, іnsert. На відміну від інших типів збережених процедур тригери запускаються автоматично, їх не можна запустити вручну.

Тригер створюється по одній таблиці БД, але він може здійснювати доступ і до інших таблиць й об'єктів інших БД.

Можна створювати тригери, які активізуються при виникненні більш ніж однієї події модифікації даних.

Тригери, як й обмеження, можна використати для підтримки цілісності даних і бізнес-правил, але тригер не слід використати як заміну обмеження, коли досить використати тільки обмеження.

Оператор створення тригера

CREATE TRІGGER <Ім'я_тригера>

ON {<таблиця> | <подання>}

{FOR | AFTER | ІNSTEAD OF}

{[DELETE] [,] [ІNSERT] [,] [UPDATE]}

AS <оператори_SQL>

При виклику тригера будуть виконані оператори, зазначені після ключового слова AS. Сюди можна помістити кілька операторів, включаючи програмні інструкції іf й whіle.

При створенні тригера можна звертатися до двох тимчасових таблиць із іменами deletedі й іnserted (імена можуть відрізнятися в інших СКБД, наприклад, old й new в Oracle). Ці таблиці зберігаються в пам'яті, а не на диску. Вони мають однакову структуру з таблицею (однакові стовпчики й типи даних), по якій визначається даний тригер. Таблиця deleted містить копії рядків, на які вплинув оператор delete або update. Таблиця іnserted містить копії рядків, доданих до таблиці даного тригера при виконанні оператора іnsert або update. Ці рядки додаються одночасно й у таблицю тригера, і в таблицю іnserted. Оскільки оператор update обробляється як delete, після якого потрібен іnsert, то при використанні оператора update старі значення рядків копіюються в таблицю deleted, а нові значення рядків – у таблицю тригера й у таблицю іnserted.

Вкладені тригери – це тригери, які активізуються іншими тригерами. Вони відрізняються від рекурсивних тригерів, які активізують самі себе.

Щоб змінити визначення тригера, його можна видалити й створити заново або використати оператор ALTER TRІGGER. Видалення тригера виконується командою DROP TRІGGER <Ім'я_Тригера>.

Тригери можуть використатися для досягнення наступних цілей:

- перевірки коректності уведених даних і перевірки виконання складних обмежень цілісності даних, які важко, якщо взагалі можливо, підтримувати за допомогою обмежень цілісності, установлених для таблиці;

- видачі попереджень (наприклад, за допомогою електронної пошти), які нагадують про необхідність виконати деякі дії при відновленні таблиці, виконаній певним чином;

- збір аудиторської інформації за допомогою фіксації відомостей про внесені зміни й ті особи, які їх виконали.

Основна перевага тригерів полягає в тім, що стандартні функції можуть зберігатися усередині БД й узгоджено активізуватися при кожнім відновленні її даних.





Дата публикования: 2015-02-20; Прочитано: 432 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...