`
mamaoyuan625
  • 浏览: 176913 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle的update insert delete时的触发器

阅读更多
1:建表
CREATE TABLE  t1 (
       
       tid VARCHAR2(20), 
       tname VARCHAR2(20)
       )
 CREATE TABLE logg(
       n_id VARCHAR2(20),
       n_name VARCHAR2(10),
      n_value VARCHAR2(40)
)

CREATE OR REPLACE TRIGGER tri_up_del_inser
BEFORE INSERT OR UPDATE OR DELETE  --insert update delete 触发 
ON t1 
FOR EACH ROW  
DECLARE
n_tid VARCHAR2(20); 
log_id VARCHAR2(20); --日志id (就是t1表的tid)
log_value VARCHAR2(40); --日志的value (就是对tname的u d  i )
log_name VARCHAR2(10); -- 日志的name (INSERT UPDATE DELETE)
BEGIN

     IF inserting THEN
        SELECT 'TID'||lpad(substr(nvl(MAX(tid),'TID000'),4,3)+1,3,0) INTO n_tid FROM t1;
          :NEW.tid := n_tid;  
       log_id :=n_tid;
       log_name :='INSERT';
       log_value := :NEW.tname;
     ELSIF updating THEN
         log_id :=:OLD.tid;
         log_name :='UPDATE';
         log_value := :NEW.tname;
     ELSIF  deleting  THEN
           log_id :=:OLD.tid;
         log_name :='DELETE';
         log_value := :OLD.tname;
     END IF;
     
       INSERT INTO logg  VALUES(log_id,log_name,log_value);
     
END;

 重要知识点:

:new.tid   ---->表示你要新增加的记录的自动编号 

:old.tname ----->表示你要删除时的tname

 

 inserting  updating deleting

 

if inserting   then

elsif  updating then

elsif deleting then

end if;

分享到:
评论

相关推荐

    调试oracle触发器方法

    在Oracle数据库中,触发器(Triggers)是一种存储过程,它们自动执行,当特定的数据库事件发生时,如INSERT、UPDATE或DELETE操作。调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的...

    oracle_触发器的种类和触发事件

    DML事件包括INSERT、UPDATE和DELETE三种。DML触发器可以在 BEFORE 或 AFTER 触发事件中执行,在执行时可以访问触发事件前的旧数据和触发事件后的新数据。DML触发器可以用于实现数据的完整性和业务逻辑的实现。 DDL...

    oracle 触发器实时调用java 中http接口

    在Oracle数据库中,触发器是一种特殊类型的存储过程,它会在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。在这个场景中,我们关注的是一个特定的触发器,它在插入数据后被调用,并通过存储过程来...

    Oracle触发器语法详解

    * 每个 insert、delete、update 影响的行;如果有,最先执行行级 before 触发器。 * 执行行的 delete 或 update。 * 如果有,执行行级 after 触发器。 * 如果有,执行语句级 after 触发器。 使用触发器可以管理数据...

    关于oracle触发器before和after的应用问题

    **Before**触发器在DML操作(如INSERT、UPDATE、DELETE)执行之前触发,允许在操作实际发生前进行数据检查、预处理或阻止不合规的数据变更。例如,Before INSERT触发器可用于验证新插入的记录是否满足特定的业务规则...

    oracle触发器的创建与使用

    触发器是一种存储过程,当特定的数据库事件发生时(如INSERT、UPDATE或DELETE操作),它会被自动执行。通过触发器,数据库管理员可以实现对数据的复杂逻辑控制和数据完整性的保障。 在Oracle中,存储过程是预先编译...

    Oracle触发器备份表数据

    触发器是一种存储过程,它与表或视图关联,并在对这些对象执行特定类型的数据库操作(如INSERT、UPDATE、DELETE)时自动执行。触发器可以在数据修改前或后执行,这为实现复杂业务逻辑提供了强大的支持。 #### 如何...

    oracle数据库触发器实例

    在Oracle数据库中,触发器是一种存储过程,它被设计为当特定事件(如数据插入、更新或删除)发生时自动执行。触发器可以用于执行复杂的业务逻辑或者数据完整性检查等操作。本文将通过三个具体的例子来展示如何创建和...

    Oracle自增序列和触发器生成工具.zip

    自增序列可以确保数据的唯一性,而触发器则可以在特定事件(如INSERT、UPDATE或DELETE)发生时执行一些额外的操作。本压缩包"Oracle自增序列和触发器生成工具"提供了一种便捷的方式,帮助开发者快速生成这些必要的...

    oracle job调度存储过程 触发器 定时更新数据库

    而"触发器"则是一种特殊的存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。 Oracle Job调度存储过程的使用步骤通常包括以下几个部分: 1. **创建存储过程**:首先,你需要编写一个...

    oracle练习题关于触发器的作业

    2. **语句级触发器**:与行级触发器相反,语句级触发器在DML语句(INSERT、UPDATE、DELETE)执行时触发,无论操作涉及多少行。这意味着,即使影响了多行,触发器也只执行一次。 3. **复合触发器**:复合触发器允许...

    Oracle存储过程、触发器

    Oracle触发器是一种数据库对象,它会在特定的数据库事件(如INSERT、UPDATE、DELETE)发生时自动执行。触发器常用于实现数据完整性约束、业务规则或审计功能。创建触发器的语法如下: ```sql CREATE TRIGGER ...

    Oracle触发器 实例讲解

    1. 语句触发器:例如create trigger biud_foo before insert or update or delete on foo 2. 行触发器:例如create trigger biufer_employees_department_id before insert or update of department_id on employees...

    oracle 数据库 触发器

    - **替代触发器**(INSTEAD OF):仅应用于视图,当试图在视图上执行INSERT、UPDATE或DELETE时,替代实际的DML操作执行自定义的行为。 2. **DML触发器的要点**: - **触发表**:触发器与特定的表相关联,对表上的...

    oracle存储过程和触发器

    它们可以在DML(数据操纵语言)操作(如DELETE、INSERT、UPDATE)前或后执行,也可响应DDL(数据定义语言)操作(如CREATE、ALTER、DROP),以及服务器错误、用户登录/登出、数据库启动/关闭等事件。 **2. 类型与...

    oracle_基本的几种触发器

    在Oracle数据库中,**Instead-of触发器**主要用于处理视图上的数据操作语言(DML)操作,如`INSERT`、`UPDATE`或`DELETE`。由于视图本身不是实际的数据存储结构,而是基于一个或多个基础表通过查询构建的逻辑表,...

    oracle中job调度存储过程 触发器 定时更新数据库.rar

    在Oracle中,触发器是一种特殊类型的数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用来强制业务规则、审计数据变化或触发其他数据库操作。然而,触发器不适合用于大数据...

    Oracle触发器实验报告

    Oracle触发器是数据库管理系统中的一种特殊程序,它与数据库表的操作紧密相关,可以在特定的数据操作事件(如INSERT、UPDATE或DELETE)发生时自动执行。在本实验报告中,主要涉及了Oracle触发器与参照完整性约束的...

    基于Oracle数据库存储过程与触发器的应用.pdf

    而触发器则是一种特殊类型的存储过程,它会在特定的数据修改操作(如INSERT、UPDATE或DELETE)发生时自动执行,以确保数据的完整性和一致性。 文章中提到,自动增加流水号是数据库管理中的常见需求。流水号作为唯一...

    oracle触发器实例

    - 行级触发器:在对单条记录进行INSERT、UPDATE或DELETE操作时触发,对每条受影响的记录执行一次。 - 语句级触发器:在执行DML语句后触发,无论操作影响多少记录,只执行一次。 2. 触发事件: - INSERT:在插入...

Global site tag (gtag.js) - Google Analytics