728x90
-- trigger: update, insert, delete문이 실행되기 전후에 처리할 실행문
select * from all_triggers;
-- 트리거 생성
create or replace trigger dept_trigger
before
update on dept
for each row
begin
dbms_output.put_line('update전 ->'|| :old.dname);
dbms_output.put_line('update후 ->'|| :new.dname);
end;
set serveroutput on;
select * from dept;
update dept set dname='세일즈맨' where deptno=30;
-- 사원등록insert하거나 사원을 수정update, 사원삭제delete 하면 급여의 총합계와 급여의 평균을 구하여 출력하는 트리거를 생성한다.
create or replace trigger sal_trigger
after
insert or update or delete on emp
--for each row
declare
tot number;
ave number;
begin
select sum(sal),avg(sal) into tot, ave from emp;
dbms_output.put_line('급여의 합계='||tot);
dbms_output.put_line('급여의 평균='||ave);
end;
select sum(sal), avg(sal) from emp;
insert into emp (empno, ename, sal) values(7879,'gildong1',7000);
728x90
'Infrastructure > Database' 카테고리의 다른 글
oracle 이전글, 다음글 구하기 (0) | 2021.04.19 |
---|---|
oracle 커서 (0) | 2021.03.01 |
oracle 프로시저 (pl/sql) (0) | 2021.03.01 |
oracle 시퀀스 (0) | 2021.03.01 |
oracle 뷰 (0) | 2021.03.01 |