zoukankan      html  css  js  c++  java
  • Oracle触发器Trigger基础1

    /*
    Trigger是作用在表上,或是数据库上,或是用户上。当用户在表上(其他)做某些操作时,trigger将会自己执行。
        可以在表上:insert,update,delete
        Trigger只对表的写入,修改、删除。
    */
    /*
    语法
    CREATE [OR REPLACE] TRIGGER trigger名称 
    { BEFORE | AFTER | INSTEAD OF } 
    –    在什么之前,或是在什么之后,用有具体的表上
    –    Instend of 替换用在view上面trigger
     ON  - 添加到什么什么上面
    { someTable}   - 触发器作用在某个表上
    [ for each row] – 行级触发器
    }
    [WHEN (条件,当什么时间触发下面的代码) ] 
    Declare
      --..
    Begin
        ...
    End;
    */
    
    --向一个表stud中写入数据,要求在后台输出一句:你写入成功了
    create table tigger_t (
    id int,
    name varchar(30)
    );
    --修改表名
    --rename old to new;
    alter table TIGGER_T rename to trigger_t;
    --还可以create 。。。。as select * ...
    --drop 原来表名
    
    --创建触发器
    create or replace trigger t1
    after insert on trigger_t
    declare
    begin
    dbms_output.put_line('写入成功');
    end;
    --测试
    set serveroutput on;
    insert into trigger_t values(1,'jack');
    commit;
    --创建删除时的触发器
    create or replace trigger t1
    after delete on trigger_t--表级触发器,删除多少行只只能高兴一次plsql
     for each row--行级,没行都会执行
    declare
    begin
    dbms_output.put_line('删除成功');
    end;
    set serveroutput on;
    delete from trigger_t;
    commit;
    select * from trigger_t;
  • 相关阅读:
    FreeRTOS 移植到WIN10
    Keil debug command SAVE 命令保存文件的解析
    VS2017 编译 Visual Leak Detector + VLD 使用示例
    LaTeX 中插入GIF图片
    VS2017 + Qt5 + OpenCV400 环境配置
    记一次C++编程引用obj文件作为静态库文件
    Qt 多语言支持
    vscode 解决符号无法识别的问题
    带FIFO的UART数据接收
    MySQL Connector/Python 接口 (三)
  • 原文地址:https://www.cnblogs.com/xiaweifeng/p/3679162.html
Copyright © 2011-2022 走看看