zoukankan      html  css  js  c++  java
  • oracle之语句触发器创建

    1、我们首先先去创建一张表:这里举例用的是teacher2表

    create table teacher2(
    tno varchar2(3) not null,
    tname varchar2(9) not null,
    tsex varchar2(3) not null,
    tbirthday date,
    prof varchar2(9),
    depart varchar2(15) not null,
    constraint pk_teacher2 primary key(tno)
    );

     2、接下来:我们往表里插入数据,使表稍微完善一些:

    insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(804,'LC','M',to_date('1958/12/02','yyyy-mm-dd'),'TVM','JSJ');
    insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(856,'ZX','M',to_date('1969/03/12','yyyy-mm-dd'),'JS','DZGCX');
    insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(825,'WP','F',to_date('1972/05/05','yyyy-mm-dd'),'ZJ','JSJX');
    insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(831,'LB','F',to_date('1977/08/14','yyyy-mm-dd'),'ZJ','DZGCX');

     3、接下来我们给teacher2表创建一张teacher2_log数据表:用来操作种类信息和操作日期,,作用就是我们通过select * from teacher2_log查看新增的信息

    create table teacher2_log
    (
    operate_tag varchar2(10), ---定义字段,存储操作种类信息
    operate_time date); ---定义字段,存储操作日期

     4、接 下来  我们创建触发器 这个比较复杂的,首先写触发器名称,触发时机,on 表(这里的表是原表“teacher2”),if条件。。。。。。

    create or replace trigger tri_teacher2list---tri_t2list是触发器名称
    before insert or update or delete ----触发时机
    on teacher2 ----on teacher2
    declare ----声明内部变量
    var_tag varchar2(10);----声明一个变量,存储对teacher2表执行的操作类型
    begin
    if inserting then ---当触发事件是插入时
    var_tag:='insert'; ---标识为插入操作
    elsif updating then ---当触发事件是更改时
    var_tag:='update'; ---标识符为更新操作
    elsif deleting then ---当触发事件时删除时
    var_tag:='detele'; ---标识符为删除操作
    end if;
    insert into teacher2_log ----是之前创建的存储表
    values(var_tag,sysdate); ---- 向日志存储表插入对teacher2表的操作信息
    end tri_teacherlist; ----触发结束
    /

     5、我们最后来验证一下:

    insert into teacher2(tno,tname,tsex,tbirthday,prof,depart) values(826,'PC','F',to_date('1978/08/14','yyyy-mm-dd'),'ZJ','DZGCX');

     6、我再来查看一下日志存储表teacher2_log:   select * from teacher2_log.

    完美结束。。。这个我也学了两天。。其中报错遇到很多问题。慢慢的研究 就解决了。

  • 相关阅读:
    40种为网页设计师准备的高品质和免费的多媒体PSD文件
    GNU make manual 翻译( 一百一十一)
    对 makefile 中 .ONESHELL的学习体会
    GNU make manual 翻译( 一百一十四)
    对 makefile 中 .NOTPARALLE 的学习体会
    静态模式规则的例子
    GNU make manual 翻译( 一百一十二)
    GNU make manual 翻译( 一百一十五)
    对 makefile 中 .EXPORT_ALL_VARIABLES 的学习体会
    如何应对 Another app is currently holding the yum lock;
  • 原文地址:https://www.cnblogs.com/linyu51/p/13389683.html
Copyright © 2011-2022 走看看