Oracle初探(八)
2015-08-07 08:05
405 查看
触发器和条件谓词,笔记为:
------------触发器 /* create or replace trigger 名称 after/before insert/update/delete on emp begin end; 开启触发器 insert/update/delete操作 */ set serveroutput on; create or replace trigger trigger_add after insert on emp begin dbms_output.put_line('boom shakalaka!!'); end; / insert emp value(1001); create or replace trigger trigger_t1 before delete on emp begin if to_char(sysdate,'day') in ('星期四','星期日') then raise_application_error(-20001,'今天是周末,数据库要休息!!'); end if; end; --------------条件谓词:可以同时执行dml所有操作 ----监控emp表的操作(编号、操作人,操作时间、操作动作) create table emp_log ( log_id number(8) primary key, username varchar2(20), op_date date, op_content varchar2(20) ); create sequence seq_id; create or replace trigger trigger_log after insert or delete or update on emp declare v_content varchar2(20); begin case when inserting then v_content :='增加'; when deleting then v_content :='删除'; when updating then v_content :='更新'; end case; insert into emp_log values(seq_id.nextval,user,sysdate,v_content); end; / ----------------old、new -------------删除表中的数据,然后通过触发器提供的伪表方式来进行备份操作 (t1表做为示例) -------update操作old、new表 :new、:old (同步备份) -------delete操作old表 :old (要备份) -------insert操作new表 :new (不用备份) create table t1(tid number(8),tname varchar2(20)); ---1、创建一张伪表 create table copyt1 as select * from t1 where 1<>1; --2、创建数据备份的触发器 create or replace trigger trigger_copyt1 after delete on t1 for each row begin --当t1表中的数据被删除,则往copyt1表中插入被删除的数据 insert into copyt1 values (:old.tid,:old.tname); end; / -----------------------------修改数据,备份表数据同步更新 create or replace trigger trigger_copyt2 after update on t1 for each row begin --当源表直接更新,则备份表数据同步更新 update copyt1 set tname = :new.tname where tid = :old.tid; end; /
相关文章推荐
- oracle查看表空间使用大小和扩展表空间
- oracle 数据库批处理文件
- Oracle修改字段类型方法
- oracle批量插入测试数据
- oracle增删改表字段
- c# 调用oracle 存储过程、方法简易例子
- Oracle事务的隐式提交
- oracle spool简介+sql plus set常用设置
- Oracle创建用户及权限设置
- Oracle创建用户及权限设置
- 二、oracle sqlplus常用命令
- 45 个非常有用的 Oracle 查询语句
- oracle9i statspack 报告 分析 direct path read 等待事件
- Oracle窗口函数显示想要的行数
- 从AWR报告分析Oracle性能
- oracle创建和维护表
- ORACLE
- linux oracle10g命令行创建数据库实例
- maven项目中加载oracle驱动
- ARCGIS ORACLE