Oracle觸發器例子

2022-08-31 14:15:14 字數 2128 閱讀 6703

create

table emp_his as

select

*from emp where1=

2; create

orreplace

trigger

tr_del_emp

before

delete

--指定觸發時機為刪除操作前觸發

onscott.emp

for each row --

說明建立的是行級觸發器

begin

--將修改前資料插入到日誌記錄表 del_emp ,以供監督使用。

insert

into

emp_his(deptno , empno, ename , job ,mgr , sal , comm , hiredate )

values

( :old.deptno, :old.empno, :old.ename , :old.job,:old.mgr, :old.sal, :old.comm, :old.hiredate );

end;

create

orreplace

trigger

tr_dept_time

before

insert

ordelete

orupdate

ondepartments

begin

if (to_char(sysdate,'

day') in ('

星期六', '

星期日')) or (to_char(sysdate, '

hh24:mi

') not

between

'08:30

'and

'18:00

') then

-20001, '

不是上班時間,不能修改departments表');

endif;

end;

create

orreplace

trigger

tr_emp_sal_comm

before

update

ofsalary, commission_pct

ordelete

onhr.employees

foreach row

when (old.department_id =80)

begin

case

when updating ('

salary

') then

if :new.salary < :old.salary then

-20001, '

部門80的人員的工資不能降');

endif

;

when updating ('

commission_pct

') then

if :new.commission_pct < :old.commission_pct then

-20002, '

部門80的人員的獎金不能降');

endif

;

when deleting then

-20003, '

不能刪除部門80的人員記錄');

endcase

;end;

create

orreplace

trigger

tr_reg_cou

after

update

ofregion_id

onregions

foreach row

begin

dbms_output.put_line(

'舊的region_id值是'||

:old.region_id

||'、新的region_id值是'||

:new.region_id);

update countries set region_id =

:new.region_id

where region_id =

:old.region_id;

end;

觸發器小例子!

insert 觸發器 create trigger tri infodetails i on info details after insert asdeclare id int begin delete from info details where id select id id from in...

WPF 觸發器例子

wpf的觸發器很強大,這裡簡單附上觸發器的乙個小例子,分別用xmal和cs 來實現乙個功能,滑鼠懸停在button上時改變字型顏色 1.xmal 如下 cs 如下 public mainwindow 例項style,引數帶上控制項型別 style m style new style typeof b...

ORACLE觸發器 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...