HeavenTang

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

oracle之触发器基础篇

  一、触发器:是一个与表关联的、存储的PL/SQL程序,当用户执行了insertupdatedelete操作之后,  

oracle自动地执行触发器中定义的语句序列。
 作用:

 1.数据确认:如员工涨薪后,新工资不能少于之前的工资。

 2.安全性检查:如禁止非工作时间插入新员工。

 3.做审计,跟踪上所做的数据操作等。

 4.数据的备份与同步。

类型:

  语句级触发器:在指定的操作语句之前或者之后执行一次,不管这个语句影响了多少行语句。

  行级触发器:触发语句作用的每一条记录都被触发,在行级触发器中使用oldnew伪记录变量, 识别值的状态

二、语法

  ---创建触发器

     create [or replace] trigger 触发器名

          before/after

        insert/update/delete [of 列名]

       on 表名

       [for each row [when(条件)]]

        declare

        ...

       begin

         PLSQL块

       end

 ---删除触发器

   drop trigger 触发器名

三、实例

 ---新员工入职后,输出 "欢迎加入" 字符串。创建触发器

  create or replace trigger trig_show_hello

  after ---after 表示操作后触发

     insert on emp

   declare

   begin

   dbms_output.put_line('欢迎加入');

  end;

---插入员工。插入成功后就会触发上面的 trig_show_hello 触发器

  insert into emp

   values(9996,'华安','MANAGER','7698',sysdate,9888.87,300,30);

 ---更新所有员工的薪水,同一加 100,创建触发器,更新完成后给出提示

  create or replace trigger tric_update_sal

  after update on emp

  for each row --表示行级触发器

     declare

     begin

       --- :old 表示操作前的记录行,:new 表操作后的记录行
        dbms_output.put_line('原来工资:'||:old.sal|| ' 现在薪水:'||:new.sal);

     end;

       ---更新员工薪水。自动触发上面的 tric_update_sal 触发器

    update emp set sal = sal+100;

posted on   HeavenTang  阅读(771)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示