编辑:我不知道这是哪个发行版,因为它出现在一份考试试卷中。
很遗憾,我没有理解这个问题。我对行级触发器感到满意,但是能否有人向我解释一下如果触发器是语句级别的,结果会有什么不同呢?
关系/语句触发器/行级触发器
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)
我知道在“for each row”触发器中,它会为触发语句所影响的每一行都触发。那么语句级触发器是否会以不同方式修改结果呢?比如说,如果我在一个语句中插入了五个元组,那么它们的工资等信息是否都会被设置?如果是这样,那么行级触发器的好处在哪里呢?
我已经尝试搜索,但就是无法理解。
谢谢,
编辑:现在,我可能有点迟钝,但是这两个触发器是否会产生不同的输出结果呢?对于语句级触发器,如果我使用以下示例值:
在触发器创建之前的表中:
(A,50)
在触发器创建后添加一个语句:
(B,70), (C,30)
第一个触发器会为每个要插入的元组设置工资,对吗?那么第一个将变成120(因为平均数是50,70 + 50 = 120),第二个将变成80。如果这是正确的,那么第二个触发器的结果有何不同?
REFERENCING
δΫçψIJ - Andriy M