zoukankan      html  css  js  c++  java
  • oracle中触发器

    触发器的类型有:

      触发器类型:           
      1、 语句触发器

      2、 行触发器

      3、INSTEAD OF触发

      4、 系统条件触发器

      5、 用户事件触发器

    语句级触发器.(语句级触发器对每个DML语句执行一次)

    是在表上或者某些情况下的视图上执行的特定语句或者语句组上的触发器。能够与INSERT、UPDATE、DELETE或者组合上进行关联。但是无论使用什么样的组合,各个语句触发器都只会针对指定语句激活一次。比如,无论update多少行,也只会调用一次update语句触发器。

    代码

    create or replace trigger tri_test
      after insert or update or delete on test
      begin
             dbms_output.put_line('dddd');
    end;

    dml是能够批量处理的 所以 :old :new是不允许在这里用的  只有某一个行记录才有

    行级触发器.(行级触发器对DML语句影响的每个行执行一次)
     create or replace trigger tri_test--创建触发器
      before insert or update of sid on test
      for each row--触发每一行
      begin
      dbms_output.put_line(:new.id);  --old 只有删除与修改的时候有

      end;
    instead of触发器
    (此触发器是在视图上而不是在表上定义的触发器,它是用来替换所使用实际语句的触发器.)不太懂

    模式触发器不太懂

      可以在模式级的操作上建立触发器.

      实例如下: 

          create or replace trigger log_drop_obj
      after drop on schema
      begin
      insert into .....
      end;

    数据库级触发器.

      可以创建在数据库事件上的触发器,包括关闭,启动,错误,登录等.这些事件都是实例范围的,不与特定的表或视图关联

    create or replace trigger trig_name
      after startup on database
      begin
      ...........
      end;

    CREATE OR REPLACE TRIGGER DBT_LOGON

    AFTER LOGON

    ON DATABASE

    BEGIN

  • 相关阅读:
    使用zipkin2在SpringCloud2.0环境下追踪服务调用情况
    Spring Cloud负载均衡:使用Feign作客户端负载均衡
    Spring Cloud负载均衡:使用zuul作服务器端负载均衡
    Word模板替换
    【转】Eureka集群
    巧用JavaScript语言特性解耦页面间调用(观察者模式)
    MySQL 视图触发器事务存储过程函数
    MySQL py模块的链接Navicat可视化工具
    MySQL 单表查询多表查询
    MySQL 表与表之间建立关系
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331696.html
Copyright © 2011-2022 走看看