您的位置:首页 > 其它

使用触发器记录操作

2010-12-09 11:38 190 查看
创建表:create table student(sid int primary key,sname varchar(20))
创建日志文件:create table log_student(logid int primary key,content varchar(20),updatedate date)
创建序列号:create sequence seq
start with 1
increment by 1
minvalue 1
maxvalue 10000000
nocycle
cache 20;
创建触发器:create or replace trigger tr_test
before insert or update or delete on student
declare
content varchar(20);
begin
if inserting then
content:='新增';
elsif updating then
content:='修改';
else
content:='删除';
end if;
insert into log_student values(seq.nextval,content,sysdate);
end tr_test;

操作时间限制:create or replace trigger td_student
before insert or update or delete on student

declare
content varchar(20);
begin
if(to_char(sysdate,'DY')in('星期六','星期日'))or(to_char(sysdate,'HH24')not betwent '06' and '18')
then
RAISE_APPLICATION_ERROR(-20500,'非法时间修改表错误');
end if;
end td_student;

操作时间限制:

create or replace trigger td_student
before insert or update or delete on student

begin
if(to_char(sysdate,'DY')not in('星期一','星期五'))
then
RAISE_APPLICATION_ERROR(-20500,'休息时间,修改表错误');
end if;
end td_student;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: