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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |