1、我們首先先去創建一張表:這里舉例用的是teacher2表
create table teacher2(
tno varchar2(3) not null,
tname varchar2(9) not null,
tsex varchar2(3) not null,
tbirthday date,
prof varchar2(9),
depart varchar2(15) not null,
constraint pk_teacher2 primary key(tno)
);
2、接下來:我們往表里插入數據,使表稍微完善一些:
insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(804,'LC','M',to_date('1958/12/02','yyyy-mm-dd'),'TVM','JSJ');
insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(856,'ZX','M',to_date('1969/03/12','yyyy-mm-dd'),'JS','DZGCX');
insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(825,'WP','F',to_date('1972/05/05','yyyy-mm-dd'),'ZJ','JSJX');
insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(831,'LB','F',to_date('1977/08/14','yyyy-mm-dd'),'ZJ','DZGCX');
3、接下來我們給teacher2表創建一張teacher2_log數據表:用來操作種類信息和操作日期,,作用就是我們通過select * from teacher2_log查看新增的信息
create table teacher2_log
(
operate_tag varchar2(10), ---定義字段,存儲操作種類信息
operate_time date); ---定義字段,存儲操作日期
4、接 下來 我們創建觸發器 這個比較復雜的,首先寫觸發器名稱,觸發時機,on 表(這里的表是原表“teacher2”),if條件。。。。。。
create or replace trigger tri_teacher2list---tri_t2list是觸發器名稱
before insert or update or delete ----觸發時機
on teacher2 ----on teacher2
declare ----聲明內部變量
var_tag varchar2(10);----聲明一個變量,存儲對teacher2表執行的操作類型
begin
if inserting then ---當觸發事件是插入時
var_tag:='insert'; ---標識為插入操作
elsif updating then ---當觸發事件是更改時
var_tag:='update'; ---標識符為更新操作
elsif deleting then ---當觸發事件時刪除時
var_tag:='detele'; ---標識符為刪除操作
end if;
insert into teacher2_log ----是之前創建的存儲表
values(var_tag,sysdate); ---- 向日志存儲表插入對teacher2表的操作信息
end tri_teacherlist; ----觸發結束
/
5、我們最后來驗證一下:
insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(826,'PC','F',to_date('1978/08/14','yyyy-mm-dd'),'ZJ','DZGCX');
6、我再來查看一下日志存儲表teacher2_log: select * from teacher2_log.
完美結束。。。這個我也學了兩天。。其中報錯遇到很多問題。慢慢的研究 就解決了。