文档介绍:实验六 Oracle触发器实验
一、实验目的
。
。
二、实验步骤及结果
Developer,用户名hr和密码为hr,并连接到Oracle数据库上,打开SQL worksheets,输入如下语句,建立试验表:
create table employees_copy_王新 as select * from employees;
如图所示:
,建立日志表:
create table employees_log_王新(
who varchar2(30),
when date);
select * from employees_log_王新;
如图所示:
3. 在employees_copy_王新表上建立语句触发器,在触发器中将时间、用户记录到employees_log_王新表中,输入如下SQL语句
Create or replace trigger audit_employee_copy_王新
Before insert or update or delete
On employees_copy_王新
Begin
Insert into employees_log_王新(Who,when) Values(user, sysdate);
End;
如图所示:
4. 测试触发器: 对employees_copy_王新表做一个update操作,输入如下SQL语句:
update employees_copy_王新 set salary= salary*;
commit;
如图所示:
,查看表employees_log_王新:
select * from employees_log_王新;
如图所示:
如果想把时间看得更清楚些,可以执行如下语句:
SELECT who "操作人员",TO_CHAR(when,'YYYY-MM-DD HH24:MI:SS') "操作时间" FROM employees_log_
王新;
6. 修改日志表结构,增加一个属性存放触发语句类型,输入如下SQL语句alter table employees_log_王新 add (action varchar2(20));
结果如图:
7. 修改触发器,记录触发语句类型。由于下面程序中含有PL/SQL程序,所以只能在Triggers菜单中单击右键选Edit进行编辑, 编译成功后如图所示:
对employees_copy_王新表做一个insert操作:
输入如下语句:
i