使用触发器记录操作
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;
创建日志文件: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;
相关文章推荐
- 使用触发器记录数据库删除操作
- 使用 logback记录Sql操作日志及log4j迁移到logback
- Laravel基础(六)--使用Eloquent ORM操作数据库之删除记录
- salt-api return mysql返回的使用,记录操作日志
- Asp.net mvc:使用ActionFilterAttribute记录操作日志
- VPS中使用LNMP操作记录
- 使用VB操作Excel(随笔记录)
- 使用sql标签来实现对数据库当中记录增删改查操作
- 使用dom4j和XMLHTTP轻松解决多条记录操作
- vs中,使用到svn,一些操作点记录。
- 使用触发器做到在一个表更新记录时将更新前的记录存入另一个表
- 如何获取getevent的输出,并且记录到文件中?使用python操作
- 使用触发器记录oracle用户登陆信息
- 使用Spring切面编程记录操作行为的日志
- 记录最近工作使用javascript对select[option]的操作
- 【转】Android使用事务操作SQLite数据库【学习记录】
- [翻译] 使用ASP.NET MVC操作过滤器记录日志
- 这里是dom操作的问题 , 需要记录下来 ,之后参考使用
- 使用数据库级触发器记录数据库更改历史
- 使用内置的 Problem Steps Recorder 记录桌面操作