Яка різниця між тригерами рівня рядка та рівня оператора?

0 Comments

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

Тригери на рівні рядка є найпоширенішим типом тригерів; вони часто використовуються в програмах аудиту даних. Тригер на рівні рядка визначається пропозицією FOR EACH ROW у команді CREATE TRIGGER. Тригери на рівні оператора виконуються один раз для кожної транзакції.

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

Тригер на рівні рядка спрацьовує один раз для кожного рядка, на який впливає подія запуску. Наприклад, якщо видалення визначено як тригерну подію для певної таблиці, і один оператор DELETE видаляє п’ять рядків із цієї таблиці, тригер спрацьовує п’ять разів, один раз для кожного рядка.

Типи тригерів у PL/SQL із прикладами

  • Тригери на рівні рядка. Тригер на рівні рядка виникає один раз для кожного рядка, на який впливає подія запуску. …
  • Тригери на рівні оператора. …
  • Тригери на рівні бази даних. …
  • Тригери DDL. …
  • Замість тригерів. …
  • Складні тригери. …
  • Системні тригери. …
  • Тригери подій бази даних.