G-7730: If using triggers, use compound triggers
Minor
Efficiency, Maintainability
Reason
A single trigger is better than several
Example (bad)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | create or replace trigger dept_i_trg
before insert
on dept
for each row
begin
:new.id = dept_seq.nextval;
:new.created_on := sysdate;
:new.created_by := sys_context('userenv','session_user');
end;
/
create or replace trigger dept_u_trg
before update
on dept
for each row
begin
:new.updated_on := sysdate;
:new.updated_by := sys_context('userenv','session_user');
end;
/
|
Example (good)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | create or replace trigger dept_ui_trg
before insert or update
on dept
for each row
begin
if inserting then
:new.id = dept_seq.nextval;
:new.created_on := sysdate;
:new.created_by := sys_context('userenv','session_user');
elsif updating then
:new.updated_on := sysdate;
:new.updated_by := sys_context('userenv','session_user');
end if;
end;
/
|