РЕДАКТИРОВАТЬ: Я не знаю, что это за дистрибутив, это в экзаменационной работе.
Я просто не понимаю этого, к сожалению. Я вполне доволен триггерами уровня строки, но может ли кто-нибудь объяснить мне, как будут отличаться результаты, если вместо триггера используется уровень оператора?
Отношение / Триггер оператора / Триггер уровня строки
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)
Я понимаю, что в триггере для каждой строки он будет срабатывать для каждой строки, на которую влияет оператор триггера. Теперь триггер уровня оператора изменит результаты по-другому? Скажите, если бы я вставил пять кортежей в одно утверждение, установит ли он зарплату и т.д. для всех них? Если да, то в чем здесь преимущество триггера уровня строки?
Я пытался искать, но просто не могу разобраться с этим.
Спасибо
РЕДАКТИРОВАТЬ: Теперь я просто плотно, но будет ли триггер производить разные выходы? Для триггера уровня оператора, если я использовал значения примера:
В таблице до создания триггера:
(A,50)
Добавлено в оператор ONE после создания триггера:
(B,70), (C,30)
Первый триггер установит зарплату для каждого вставляемого кортежа, верно? Таким образом, первый из них станет 120 (в среднем 50, 70 + 50 = 120), а второй станет 80. Если это правда, как второй триггер отличается в результатах?