EDIT: Я не знаю, какой это дистрибутив, это в экзаменационной работе.
Я просто не понимаю этого, к сожалению. Меня вполне устраивают триггеры уровня строки, но не мог бы кто-нибудь объяснить мне, как будут отличаться результаты, если триггер будет на уровне оператора?
Relation/Statement Trigger/Row Level Trigger
Employee(ID VARCHAR2(30), Salary NUMBER)
Create Trigger AutoRaise
After insert on Employee
Referencing new table as NT
update Employee
Set salary = salary + (select avg(salary) from NT)
Create trigger AutoRaise
After insert on Employee
Referencing new table as NT
For each Row
Update employee
Set salary = salary + (select avg(salary) from NT)
Я понимаю, что в триггере для каждой строки он сработает для каждой строки, затронутой триггерным оператором. А триггер на уровне оператора будет по-другому изменять результаты? Скажем, если я вставлю пять кортежей в один оператор, будет ли он устанавливать зарплату и т.д. для всех них? Если да, то в чем преимущество триггера на уровне строки?
Я пробовал искать, но никак не могу разобраться.
Спасибо,
EDIT: Теперь, я просто туплю, но будет ли любой из триггеров давать разные результаты? Для триггера на уровне оператора, если я использую пример значений:
В таблице до создания триггера:
(A,50)
Добавлено в ОДНОМ операторе после создания триггера:
(B,70), (C,30)
Первый триггер установит зарплату для каждого вставленного кортежа, верно? Таким образом, первый станет 120 (так как среднее равно 50, 70 + 50 = 120), а второй станет 80. Если это так, то как второй триггер отличается по результатам?