zoukankan      html  css  js  c++  java
  • oracle系列4:触发器

    一、简介:

    触发器是与表直接关联的特殊存储过程,与表的关系密切,用于保护表中的数据。当有操作影响到触发器保护的数据时,触发器将自动执行。

    二、触发器的三种类型:

    1、DML触发器:当数据库中发生DML事件时(insert,select,update,delete),将调用触发器。

    2、替代触发器:也称视图触发器,当视图发生DML事件时,将调用触发器。

    3、系统触发器:当数据库发生DDL事件(启动或关闭数据库,create,alter,drop)时,将调用触发器。

    三、使用触发器:

    1、DML触发器

    // 1、创建一个表
    create table tableName(
        id number
    );
    
    
    // 2、创建insert的DML触发器
    create or replace trigger trigName
        after insert on tableName for each row
    declare
        str char(100):='test';
    begin
        dbms_output.put_line(str);
    end;
    
    
    // 3、此时向tableName表中插入一条数据,控制台会打印test
    insert into tableName values(1001);

    2、替代(视图)触发器

    // 1、创建一个视图
    create view viewName
    as
    select * from tableName
    
    
    // 2、创建insert的视图触发器
    create trigger trigName
        instead of insert on tableName for each row
    declare
        str char(100):='test';
    begin
        dbms_output.put_line(str);
    end;
    
    
    // 3、此时向viewName视图中插入一条数据,控制台会打印test
    insert into viewName values(1001);

    3、系统触发器

    // 1、创建一个表
    create table tableName(
        id number
    );
    
    
    // 2、创建系统触发器,当用户删除数据库对象(表、视图)前,控制台打印test
    create or replace trigger trigName
        before drop on system.schema
    declare
        str char(100):='test';
    begin
        dbms_output.put_line(str);
    end;
    
    
    // 3、此时删除tableName表,控制台会打印test
    drop table tableName;

    四、启用和禁用触发器:

    // 1、启用trigName触发器
    alter trigger trigName enable;
    
    // 2、禁用trigName触发器
    alter trigger trigName disable;
    
    // 3、启用tableName表中所有的触发器
    alter table<tableName> enable all triggers;
    
    // 4、禁用tableName表中所有的触发器
    alter table<tableName> disable all triggers;
    
    // 5、删除trigName触发器
    drop trigger trigName;
  • 相关阅读:
    AjaxPro版自动完成(Autocomplete)功能实现
    推荐一款小巧的截图工具
    在VS2008中设置jquery智能提示
    Jquery选择器全总结
    MD5消息摘要算法的那些事
    C#中的集合学习笔记
    委托,文件流,扩展方法学习笔记
    Jquery实现仿腾讯微薄的广播发表
    C#中的文件流学习笔记第一篇
    ASP.NET MVC小记第一篇
  • 原文地址:https://www.cnblogs.com/XueTing/p/13872409.html
Copyright © 2011-2022 走看看