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

前端之家收集整理的这篇文章主要介绍了Oracle触发器中的NEW和Old关键字说明前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
触发器中经常会用到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;

原文链接:https://www.f2er.com/oracle/207386.html

猜你在找的Oracle相关文章