Тригери проти курсорів
У базі даних тригер - це процедура (сегмент коду), яка виконується автоматично, коли в таблиці / представленні відбуваються певні події. Серед інших його використання, тригери в основному використовуються для підтримки цілісності бази даних. Курсор - це структура управління, яка використовується в базах даних для проходження записів бази даних. Він дуже схожий на ітератор, що надається багатьма мовами програмування.
Що таке тригери?
Тригер - це процедура (сегмент коду), яка виконується автоматично, коли в таблиці / перегляді бази даних відбуваються певні події. Серед інших його використання, тригери в основному використовуються для підтримки цілісності бази даних. Тригери також використовуються для дотримання правил бізнесу, аудиту змін у базі даних та реплікації даних. Найбільш поширені тригери - це тригери мови маніпуляції даними (DML), які спрацьовують під час маніпулювання даними. Деякі системи баз даних підтримують тригери без даних, які спрацьовують, коли трапляються події мови визначення даних (DDL). Деякі приклади - це тригери, які спрацьовують під час створення таблиць, під час операцій фіксації або відкату тощо. Ці тригери можна особливо використовувати для аудиту. Система баз даних Oracle підтримує тригери рівня схеми (тобто тригери, що спрацьовують при зміні схем бази даних), такі як After Creation, Before Alter, After Alter, Before Drop, After Drop тощо. Чотири основні типи тригерів, які підтримує Oracle, - це тригери рівня рівнів, Тригери рівня стовпців, тригери кожного типу рядків та тригери для кожного типу операторів.
Що таке курсори?
Курсор - це структура управління, яка використовується в базах даних для проходження записів бази даних. Він дуже схожий на ітератор, що надається багатьма мовами програмування. На додаток до переходу через записи в базі даних, курсори також полегшують пошук даних, додавання та видалення записів. Визначивши правильний шлях, курсори також можна використовувати для переходу назад. Коли запит SQL повертає набір рядків, вони фактично обробляються за допомогою курсорів. Курсору потрібно оголосити ім'я та призначити ім'я, перш ніж його можна було використовувати. Потім курсор потрібно відкрити за допомогою команди OPEN. Ця операція розмістить курсор перед першим рядком набору результатів. Тоді курсор повинен виконати операцію FETCH, щоб фактично отримати ряд даних у програмі. Нарешті, курсор повинен бути закритий за допомогою операції ЗАКРИТИ. Закриті курсори можна знову відкрити.
Яка різниця між тригерами та курсорами?
Тригер - це процедура (сегмент коду), яка виконується автоматично, коли в таблиці / перегляді бази даних трапляються певні події, тоді як курсор - це структура управління, яка використовується в базах даних для проходження записів бази даних. Курсор може бути оголошений і використаний в триггері. У такій ситуації заява заявити буде всередині тригера. Тоді область дії курсора буде обмежена цим тригером. У межах тригера, якщо курсор оголошено у вставленій або видаленій таблиці, такий курсор не буде доступний із вкладеного тригера. Щойно тригер буде виконано, усі курсори, створені в межах тригера, будуть видалені.