oracle中用触发器实现自动记录表数据被修改的历史信息

有一些比较重要的表字段每次修改需要做历史记录,以后可以查询这个表中某些字段如何被修改过。由什么改成了什么等,由谁操作,操作时间等。

实例:1.首先创建一个成绩表

2.然后创建一个成绩修改日志表

3.针对成绩表写一个触发器,在这里只写笔试成绩和面试成绩的修改触发,各位开发人员可根据自己需要添加修改触发器

--面试成绩,以及笔试成绩修改记录触发器
create or replace trigger "TR_EXAM_SCORE_UPDATE"
before update on exam_score
for each row

begin
     
      if :old.facescore<>:new.facescore then
          insert into exam_scorelog values(seq_exam_scorelog.nextval,:old.examid,:old.studentid,:old.jobid,:old.courseid,'facescore','面试成绩', :old.facescore,:new.facescore,:new.createuser,sysdate);
      end if;
      if :old.writerscore<>:new.writerscore then
          insert into exam_scorelog values(seq_exam_scorelog.nextval,:old.examid,:old.studentid,:old.jobid,:old.courseid,'writerscore','笔试成绩', :old.writerscore,:new.writerscore,:new.createuser,sysdate);
      end if;
end;

4.这样我们在页面上修改考生的笔试或者面试成绩都会自动记录到日志表中。

查询修改日志表:

5.这样我们在知道考生id后就可以查到此考生的成绩修改记录,谁修改的,原值是多少,修改后的值是多少,操作时间

Oracle中用触发器实现自动记录表数据被修改的历史信息的更多相关文章

  1. oracle触发器,一个表新增、修改的同时同步另一张表

    oracle创建触发器,把本地新增.修改数据过程同步到另一个服务器上去. 如果是本地,加数据库名即可.如果是远程服务器,不是一台机器,做一个db_link操作即可. ----------------- ...

  2. Oracle 中用一个表的数据更新另一个表的数据

    Oracle 中用一个表的数据更新另一个表的数据 分类: SQL/PLSQL2012-05-04 15:49 4153人阅读 评论(1) 收藏 举报 oraclemergesubqueryinsert ...

  3. 触发器实现对插入数据的字段更改 Oracle+SQL Server

    最近有个使用触发器实现对插入数据的某个列做更改的需求,因此整理了Oracle和SQL Server对于此类需求的触发器写法,本文仅提到了Insert触发器. 首先我们创建一张表: --创建Test表 ...

  4. [结]Oracle trigger(触发器)摘录

    1.触发器: 是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器在数据库里以独立的对象存储,它与存储过程和函数不同 ...

  5. oracle的触发器

    oracle的触发器分为语句级和行级两种类型,在视图上所创建的触发器叫做什么类型的触发器? DML触发器有三类: 1, insert触发器: 2, update触发器: 3, delete触发器: 触 ...

  6. 【oracle】触发器简单实现

    目标:实现实时备份uertest表数据至usertest_temp中,两表结构一致 解决:用oracle触发器实现同步 结果: 1.建表 -- 简单的用户表 create table USERTEST ...

  7. Oracle数据库——触发器的创建与应用

    一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数 ...

  8. Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]:1  将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   exp sy ...

  9. Oracle trigger 触发器

    触发器使用教程和命名规范 目  录触发器使用教程和命名规范 11,触发器简介 12,触发器示例 23,触发器语法和功能 34,例一:行级触发器之一 45,例二:行级触发器之二 46,例三:INSTEA ...

随机推荐

  1. Oracle的归档日志

    归档模式的特点和要求 在归档模式下,当LGWR后台进程的写操作从一个重做日志组切换到另一个重做日志组后,归档写后台进程(ARCH/ARCRn)就会将原来的重做日志的信息复制到归档日志文件中. 可以把归 ...

  2. Eclipse 安装更多版本SDK

    暂时记下,实在没时间测试了... 安卓应用开发之查eclipse版本号和添加ADT.SDK https://jingyan.baidu.com/article/b0b63dbfc5f49b4a4830 ...

  3. 如何使用iOS 开发证书 和 Profile 文件

    如果你想在 iOS 设备(iPhone/iPad/iTouch)上调试, 需要有 iOS 开发证书和 Profile 文件. 在你拿到这两个文件之后,该如何使用呢? 证书使用说明: 1.  iOS 开 ...

  4. MySql在Linux上实现每天自动备份

    Mysql自动备份 创建存放备份sql的文件夹 mkdir /jimisun/mysqlBackup 测试命令行备份数据库 /usr/bin/mysqldump --opt -uroot -pjimi ...

  5. centos免密登录

    本文是为了docker-machine增加现有虚拟机服务器为节点而做 docker-machine create -d generic --generic-ip-address=192.168.102 ...

  6. chrome不支持字体12px

    如果网页字体小于12px的话,人眼看着会不太舒服,所以chrome的最小字体为12px. 如果想要缩小字体,可以尝试用CSS3中的 transform: scale(相应的缩小倍数)来实现. 不过不推 ...

  7. django post 403解决之道(最新版Django)

    写了一个方法,丢出一个post请求,发现报403 百度解决方案: 按提示及google结果修改setting.py,在MIDDLEWARE_CLASSES增加django.middleware.csr ...

  8. greenplum-cc-web4.0监控安装

    简介: 本文是基于greenplum5.7,greenplum-cc-web4.0安装的. 一.安装greenplum监控的数据库以及创建用户(在gpadmin用户下安装) 1.开启greenplum ...

  9. Linux 常用资源

    kernel:ftp://kernel.orgcnkernel:http://www.cnkernel.orgoldlinux:http://www.oldlinux.orgminix3:http:/ ...

  10. C++之贪吃蛇

    #include<iostream> #include<cstdio> #include<cstdlib> #include<ctime> #inclu ...