`

oracle学习笔记之五(触发器)

 
阅读更多

触发器:

 

触发器 是 特殊的存储 过程,它当指定的表中的数据 发生变化 时自动 运行:

触发器的执行是由事件触发的,而普通 存储过程是 由命令调用运行的

触发器的组成:触发事件,触发条件,触发操作

触发事件:

Insert 

Update

delete

出发时间:

Before:在指定的事件发生之前执行触发器

After:在指定的事件发生之前后执行触发器

 

触发级别:

行触发:对触发事件影响的每一行执行触发器

语句触发:对于触发事件只能触发一次,而且不能访问受触发器影响的每一行的值。

 

需求:

emp:

 

 

emp_log:

 

 

要求:

 

对雇员表的操作

对日志表的操作

新增员工记录 

把新员工记录同时插入到日志表中,把员工状态改为入职” 

修改员工的工资 

判断日志表是否有该员工记录,若存在,比较新旧工资,把员工状态对应改为加薪减薪,更新工资;若不存在,插入新记录,状态改为调薪 

员工辞职,删除该员工记录 

判断日志表是否有该员工记录,若存在,把员工状态改为辞职;若不存在,插入该条记录,把员工状态改为辞职。

建表:

 

 

 

drop table EMP cascade constraint;
drop table emp_log cascade constraint;

prompt=====创建表(EMP)=====;

create table EMP

( Empid varchar2(20) not null,

  Empname varchar2(10),

  Empage number(5),

  Empsex varchar2(2),

  Empwage number(10),

  constraint EMP_Empid_pk primary key(Empid));


prompt =====创建表(emp_log)====;

create table emp_log

(

  Empid varchar2(20) not null,

  Empname varchar2(10),

  Empage number(5),

  Empsex varchar2(2),

  Empwage number(10),

  condition char(10),

    recdate date ,     

  constraint emp_log_Empid_pk primary key(Empid));

 

 

创建触发器:

 

 

 

create or replace trigger emp_log_insert

after insert on emp

for each row 

begin

 if(inserting) then

  insert  into emp_log values(:new.Empid ,:new.Empname ,:new.Empage ,:new.Empsex ,:new.Empwage,'入职',sysdate);

 end if;



end ;

/

 

启动触发器:

 

 

alter trigger emp_log_insert enable;

  

 

停止触发器:

 

 

 

 

Alter trigger emp_log_insert disable ;

 

 

 

删除触发器:

 

 

arop trigger emp_log_insert;

 

  • 大小: 7.3 KB
  • 大小: 9.9 KB
  • 大小: 26.9 KB
  • 大小: 33.4 KB
  • 大小: 33.4 KB
2
1
分享到:
评论
1 楼 babydeed 2011-07-10  
非常好 继续

相关推荐

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望对你有帮助:主要文档如下: 01-常用命令.txt 02-表空间建表.txt 03-基本查询语句学习笔记.txt ...12-触发器学习笔记.txt 13-pl编码.txt

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    oracle 学习 笔记 实用

    oracle 日常学习的记录…… java调用oracle的存储过程 oracle number(1)一般对应于Java中的类型 Oracle常用函数 oracle触发器new Oracle中自增字段的两种方法 字典表查询

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

    oracle学习笔记

    oracle 学习笔记 教程 中文版 不错的 讲解的是 触发器

    Oracle 入门文档

    Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间 Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/...

    oracle基础笔记整理

    Oracle基础学习笔记,开窗排序函数,权限管理,递归查询,存储函数触发器游标等等

    oralce学习笔记总结(包含存储过程触发器)

    本文件是本人学习oracle的一些总结资料,值得大家借鉴,可以互相交流

    oracle 触发器 学习笔记

    功能: 1、 允许/限制对表的修改 2、 自动生成派生列,比如自增字段 3、 强制数据一致性 4、 提供审计和日志记录 5、 防止无效的事务处理 6、 启用复杂的业务逻辑 开始 create trigger biufer_employees_department_...

    Oracle学习笔记

    oracle笔记。 一:oracle的卸载 二:oracle的安装 三:oracle控制台 四:连到其它服务器 五:开发工具 pl/sql 1 用户 2 表 3 dblink,同义词 4 触发器 5 定时器 6 视图 7 序列 9 函数 10 存储过程 六:导出...

    ORACLE_PlSql-甲骨文学习笔记

    三、ORACLE 10g新增的数据类型 4 说明 4 示例 4 特殊值 4 四、ORACLE PL/SQL简介 5 1 块结构 5 2 变量和类型 6 3 条件逻辑 6 4 循环 7 5 游标 8 №1声明一些变量,用于保存select语句的返回的列值 8 №2声明游标,并...

    Ora12c学习笔记.docx

    文档中包括Oracle基本的介绍,包含存储的介绍、基本数据对象(表、索引、触发器、视图、存储过程等),表空间的管理 ,如果升级到Oracle12C 以及数据库的物理布局和存储管理

    ORACLE学习笔记2:日常应用、深入管理、性能优化.

    第12章 存储过程和触发器 第13章 游标 第14章 任务调度 第15章 事务与锁定 第3篇 系统优化 第16章 数据库内存和进程的配置与优化 第17章 常用性能监测、分析和优化工具 第18章 对SQL语句进行分析和优化 第19...

    oracle pl的学习笔记

    自己总结的oracle pl学习代码。有游标,存储过程,触发器,集合等。 初步学习pl的话会有一些帮助,也提供了相关的练习。

    ORACLE学习笔记

    基于文档《Oracle完全学习手册》,其中主要包括了基本的SQL语句,PQ/SQL语句,事务,存储过程,函数,触发器,处理库管理,SQL语句优化原则等内容,有兴趣的朋友可以下载。

    oracle学习资料 里面有ppt和笔记 很详细

    详细介绍oracle表、分区、锁、视图、索引、循环、游标、游标、过程、函数、程序包、分离、触发器等等 非常实用 学习的朋友可以看看

    MySQL学习笔记、学习文档

    MySQL入Ar ]很简单学习笔记李国华.dox Oracle查看表结构.txt SQL作业代理禁用.txt sql.txt SQL-Transaction事物一起执行.txt sq和oracle的区别.txt sysobjects中type字段值意思txt W3School例句.txt 按照中文首字母...

Global site tag (gtag.js) - Google Analytics