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;
  • 相关阅读:
    JSP项目中使用ueditor(百度编辑器)
    web安全—tomcat禁用WebDAV或者禁止不需要的 HTTP 方法
    网站开发常用jQuery插件总结(六)关键词说明插件cluetip
    网站开发常用jQuery插件总结(五)滚动条插件nanoscroller
    网站开发常用jQuery插件总结(四)验证插件validation
    网站开发常用jQuery插件总结(三)拖拽插件gridster
    网站开发常用jQuery插件总结(二)弹出层插件Lightbox_me
    网站开发常用jQuery插件总结(一)提示插件alertify
    wordpress整站搬家总结
    C#中指针使用总结
  • 原文地址:https://www.cnblogs.com/XueTing/p/13872409.html
Copyright © 2011-2022 走看看