加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle触发器中的NEW和Old关键字说明

发布时间:2020-12-12 14:22:38 所属栏目:百科 来源:网络整理
导读:触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据? CREATEORREPLACETRIGGERtrg_del_emp_info BEFOREDELETE ONemp FOREACHROW DECLARE --localvariableshere BEGIN INSERTINTOemp3(autoid,deptno
触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据?


CREATEORREPLACETRIGGERtrg_del_emp_info
BEFOREDELETE
ONemp
FOREACHROW
DECLARE
--localvariableshere
BEGIN
INSERTINTOemp3(autoid,deptno,empno,ename,del_rq)
VALUES(seq_trg_del_autoid.NEXTVAL,:OLD.deptno,:OLD.empno,:OLD.ename,sysdate);
END;


NEW关键字在什么情况下使用?
------最佳解决方案--------------------
oracle默认的用old代表老数据new代表新数据不过二者在使用时是有限制的
insert时只有new没有old
delete时只有old没有new
update时二者都可用

------其他解决方案--------------------
:new--为一个引用最新的列值;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读