`

Oracle触发器中new&old关键字使用

阅读更多
选取自:http://apps.hi.baidu.com/share/detail/16452280
new  指的是新记录的指针
old 指的是旧记录指针

:new --为一个引用最新的列值;
:old --为一个引用以前的列值;

注意:这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;


所以 :new.列名 不用指定表名,因为它表示当前最新被引用到的记录,表名无须显示。显示的列名时,需要我们先去判断当前情景下被执行的是哪个表。
例子:

SELECT seq_foo.nextval INTO :new.sid FROM dual; 之类的用法。
分享到:
评论

相关推荐

    oracle触发器使用笔记

    1. `:NEW` 和 `:OLD`:这两个是Oracle触发器中的特殊变量,`:NEW` 代表在DML操作(INSERT、UPDATE)后的新值,`:OLD` 则代表在DML操作前的旧值。对于INSERT操作,`:NEW` 表示新插入的行数据;UPDATE时,`:NEW` 是...

    oracle触发器1.ppt

    Oracle触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)或者系统事件(如数据库启动和关闭)发生时,自动执行预定义的存储过程或逻辑。触发器作为独立的对象存在于...

    16.Oracle触发器1

    Oracle触发器是数据库对象,它是一种在特定事件发生时自动执行的存储过程。触发器的执行无需用户显式调用,而是由数据库系统在特定事件(如DML操作或DDL操作)触发时隐式运行。触发器由三部分组成:触发条件(即触发...

    oracle触发器(trigger).pdf

    需要注意的是,触发器在执行过程中可能会遇到权限问题,例如,如果没有足够权限访问表,可以在触发器中使用`RAISE_APPLICATION_ERROR`来抛出自定义的错误信息。 在实际应用中,触发器的使用应当谨慎,因其可能带来...

    Oracle触发器

    值得注意的是,在`WHEN`子句中使用`old`关键字时,应省略冒号,即使用`old`而非`:old`。 为了提高触发器代码的可读性和可维护性,可以使用`REFERENCING`关键字自定义`:old`和`:new`的名称,使其更符合业务逻辑。 #...

    ORACLE触发器、内置程序包教学.pdf

    - 新旧行引用:使用NEW和OLD关键字引用新插入或更新的行以及被删除或旧的行。 - 变量声明:DECLARE部分用于声明变量。 - 异常处理:EXCEPTION部分用于处理PL/SQL代码执行时可能出现的错误。 文档内容中提到了几个...

    MySQL与Oracle 差异比较之六触发器

    在Oracle中,新插入或更新的行被称为`:NEW`,被删除或更新前的行被称为`:OLD`,而MySQL使用`NEW`和`OLD`关键字,但不加冒号,如`NEW.FAC_CD`和`OLD.FAC_CD`。需要注意的是,在Oracle中,`:NEW`和`:OLD`是大小写敏感...

    Oracle之各类触发器的创建和使用.pdf

    本文主要讨论Oracle中的各类触发器,包括DML触发器、INSTEAD OF触发器、系统事件触发器和DDL触发器,以及它们的创建和使用方法。 1. DML触发器 DML触发器主要与INSERT、UPDATE和DELETE操作关联,它们在这些操作之前...

    oracle存储过程和触发器chm格式

    Oracle存储过程和触发器是数据库管理系统中的重要组成部分,它们在数据处理和业务逻辑实现中扮演着关键角色。本文将深入探讨这两个概念以及它们在Oracle数据库中的应用。 首先,Oracle存储过程是一组预编译的SQL...

    oracle存储过程及触发器总结

    REFERENCING OLD AS old NEW AS new FOR EACH ROW DECLARE -- 变量声明 BEGIN -- 触发器逻辑 END; ``` 触发器可以设置为在数据操作之前或之后执行,也可以针对每一行数据触发。 以上是对Oracle存储过程及触发器...

    oracle存储过程和触发器的说明.pdf

    -- 触发器体,可以使用 :NEW 或 :OLD 关键字引用行级数据 END; ``` 示例中展示了一个名为`trigger_name`的触发器,它在插入操作前触发,如果表中已经存在相同的值,则阻止插入操作并抛出异常。 ```sql CREATE OR ...

    实验六-触发器实验报告.doc

    在Oracle中创建触发器,使用CREATE TRIGGER语句,可以指定触发器的名字、触发时间(BEFORE或AFTER)、触发事件以及作用的表。例如,`CREATE TRIGGER trigger_name AFTER UPDATE OF column_name ON table_name FOR ...

    PLSQL触发器.pdf

    `:OLD`和`:NEW`伪记录变量仅在行级触发器中可用,用于访问行的变化前后状态。 4. **示例**: - 一个语句级触发器示例限制在周末进行员工操作: ```sql CREATE OR REPLACE TRIGGER tr_emp BEFORE INSERT OR ...

    ORACLE PL/SQL从入门到精通

    在触发器中,可以通过:old和:NEW关键字来引用触发操作前后数据的变化。触发器的案例分析说明了如何利用触发器实现完整性约束和数据备份同步等功能。触发器的管理和维护,以及其与过程的比较也是这一章节的重要内容...

    oracle设定自增长列

    触发器中使用了两个伪记录:`NEW`和`OLD`。`NEW`表示即将插入的新记录,而`OLD`表示(如果适用)更新前的旧记录状态,在本例中未实际使用。触发器的主体是`SELECT .NEXTVAL INTO :new. FROM DUAL;`,这里`.NEXTVAL`...

    存储过程,存储函数和触发器

    其中`参数列表`定义了存储过程中使用的输入参数或输出参数。参数可以是IN、OUT或IN OUT类型,分别表示只读输入参数、只写输出参数和双向参数。 #### 存储过程示例 例如,下面的存储过程用于将指定员工的工资提高10%...

    PLSQL_Oracle 编程讲义

    它们必须遵循特定的规则,例如不能使用Oracle关键字作为标识符名称。 **2.3 变量类型** PL/SQL支持多种变量类型,包括基本类型(如NUMBER、VARCHAR2等)和复合类型(如记录和表)。其中: - **基本类型**:用于...

    java_oracle

    - **DML操作**:在Oracle数据库中,DML(Data Manipulation Language)主要包括`INSERT`、`UPDATE`、`DELETE`等语句,用于增删改数据库中的数据。 - **级别**:应用级别 `***` ##### 1.1 INSERT (插入数据) - **...

Global site tag (gtag.js) - Google Analytics