- statement trigger 샘플 코드
drop table t1;
/
create table t1
( emp_id number,
ename varchar2(20)
);
/
insert into t1 values (1,'ford');
insert into t1 values (2,'aya');
---statement trigger
create or replace trigger t1_b4_update
before update --this timeing + event
on t1 -- table name
begin
DBMS_OUTPUT.PUT_LINE(':)');
end;
update t1
set ename=ename||' s'; -- 업데이트가 발생하면 트리거는 업데이트 개수와 상관없이 1번 실행된다
----------------------
:)
2 rows updated.
select * from t1;
---------------------------------------------------------
EMP_ID ENAME
---------- --------------------
1 ford
2 aya
---------------------------------------------------------
before/after update
---------------------------------------------------------
EMP_ID ENAME
---------- --------------------
1 ford s
2 aya s
update t1
set ename=ename||' s'
where emp_id=5555;-- 업데이트 건수가 0개수여도, 상관없이 1번 실행된다
----------------------
:)
0 rows updated.
select * from t1;
--after update, 조건에 맞는 데이터가 없어서 실제 업데이트는 0건임.
---------------------------------------------------------
EMP_ID ENAME
---------- --------------------
1 ford s
2 aya s
- row trigger 샘플 코드
--row trigger
create or replace trigger t1_b4_update
before update -- this timeing + event
on t1 -- table name
for each row -- 이부분 추가됨
begin
DBMS_OUTPUT.PUT_LINE(':))');
end;
update t1
set ename=ename||' s';
--------------------------
:))
:))
2 rows updated.
update t1
set ename=ename||' s'
where emp_id=5555;
--------------------------
0 rows updated.
select * from t1;
---------------------------------------------------------
EMP_ID ENAME
---------- --------------------
1 ford s s
2 aya s s
'Database > PLSQL' 카테고리의 다른 글
083 - [Oracle PL/SQL] DML Triggers - row-level sample (0) | 2024.04.24 |
---|---|
082 - [Oracle PL/SQL] DML Triggers - stament-level sample (0) | 2024.04.24 |
080 - [Oracle PL/SQL] Triggers - Types/ Event Types (0) | 2024.04.24 |
079 - [Oracle PL/SQL] Triggers? (0) | 2024.04.24 |
078 - [Oracle PL/SQL] INDICES OF (0) | 2024.04.24 |