zoukankan      html  css  js  c++  java
  • oracle的触发器的使用举例

      这个文章演示了oracle触发器的使用,以备不时之需

    -- 创建一个表,未来需要在这个表上建立触发器
    create table baby_test
    (id number(20),
    name varchar(50),
    birthday date,
    login_date timestamp
    );
    
    -- 创建一个保存触发器操作的表
    -- drop table baby_test_log;
    create table baby_test_log
    (id number(20),
    name varchar(50),
    insert_date date default sysdate,
    operate varchar2(50)
    );
    
    
    -- 创建一个触发器。当对baby_test表的数据插入,修改和删除的时候,向baby_test_log中插入数据
    CREATE OR REPLACE TRIGGER trg_baby_test BEFORE
        INSERT OR UPDATE or delete ON baby_test
    FOR EACH ROW DECLARE
        -- local variables here
     BEGIN
        CASE
            WHEN inserting THEN
                INSERT INTO baby_test_log (
                    id,
                    name,
                    operate
                ) VALUES (
                    :new.id,
                    :new.name,
                    'inserting'
                );
    
            WHEN updating('name') THEN
                INSERT INTO baby_test_log (
                    id,
                    name,
                    operate
                ) VALUES (
                    :old.id,
                    :old.name,
                    'updating name'
                );
                
            WHEN deleting THEN
                INSERT INTO baby_test_log (
                    id,
                    name,
                    operate
                ) VALUES (
                    :old.id,
                    :old.name,
                    'deleting'
                );
    
        END CASE;
      END;
    
    -- 测试触发器
    insert into baby_test
    select 1,'baby',to_date('19990101','yyyymmdd'), sysdate from dual;
    
    select * from baby_test;
    
    update baby_test
    set name = 'hugh'
    where id = 1;
    
    delete from baby_test where id = 1;
    
    -- 查看触发器的结果
    select * from baby_test_log;
  • 相关阅读:
    EL表达式(Expression Language)
    JSP简单功能介绍
    MySQL基础使用
    JDBC
    MySQL安装卸载
    stanfordnlp dependencies(依存关系简写表)
    不需要深度学习就能做的文本分类器
    词向量的cbow模型
    pytorch实现自己的textCNN
    OpenCV编译viz模块
  • 原文地址:https://www.cnblogs.com/babyha/p/15021019.html
Copyright © 2011-2022 走看看