首页 > 数据库 >Oracle触发器中的NEW和Old关键字说明

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

时间:2022-12-07 11:22:05浏览次数:37  
标签:old OLD -- Old 关键字 new Oracle NEW

触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据?

CREATE OR REPLACE TRIGGER trg_del_emp_info
BEFORE DELETE
ON emp
FOR EACH ROW
DECLARE
-- local variables here
BEGIN
INSERT INTO emp3(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 --为一个引用以前的列值;

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

标签:old,OLD,--,Old,关键字,new,Oracle,NEW
From: https://www.cnblogs.com/dengxing/p/16962562.html

相关文章

  • linux静默安装oracle19c
    目录linux静默安装oracle19c1、环境准备1.1、安装包准备1.2、关闭防火墙1.3、关闭selinux1.4、设置主机名1.5、安装依赖2、设置oracle用户环境2.1、root创建oracle用户以及......
  • linux的oracle修改连接数
    目录linux的oracle修改连接数1、关闭监听2、查看当前会话数3、增加连接数4、重启数据库使配置生效5、重新查询数据库设置的最大连接数6、重启监听linux的oracle修改连接数......
  • oracle每日挑战-第一天
    启用OracleDatabase12c的多进程,多线程体系结构的直接好处是哪三个?多线程有三个好处:更好的资源分配,更好的CPU利用率有些情况下,程序设计更简单程序的性能提高更好的C......
  • dotnet new cli 以及Abp-cli命令的简单使用
    首先dotnetnew .NETCore3.1SDK及更高版本dotnetnew -根据指定的模板,创建新的项目、配置文件或解决方案从.NET7SDK开始, dotnetnew 语法已更改:--list、-......
  • Oracle表空间、用户基本操作
    --创建表空间CREATETABLESPACExtgxDATAFILE'xtgx.dbf'SIZE500MUNIFORMSIZE10M;--创建用户createuserxtgxidentifiedbyxtgx;--用户赋权grantconnec......
  • oracle19c pdb 模式下的dataguard 配置[1+1]
    标签(空格分隔):Oracle系列一:配置介绍使用Oracle19c的安装包安装两台主机:系统介绍:CentOS7.9x64cat/etc/hosts--------172.130.216.176[主库]1......
  • oracle相关权限查询
    1.查询连接用户是否具有系统权限SELECTANYTABLEselectcount(*)fromuser_sys_privswherePRIVILEGE='SELECTANYTABLE';2.查询连接用户是否具有具备系统权限SELE......
  • ORACLE sql 获取一月到当前月
    SqlSELECTITEM_DATE,TO_CHAR(ITEM_DATE,'YYYY-MM-DD')CURRENT_DATE_STR,CURRENT_YEAR,CASETO_CHAR(ITEM_DATE,'MM')WHEN'01'THEN'JAN'WHEN'02'THEN'......
  • oracle分析函数大全
    Oracle分析函数(一) (一)分析函数语法function_name(<argument>,<argument>...)over(<partitionbyclause><orderbyclause><windowing_clause>);function_name......
  • 查询oracle用户下所有表
    1.查看所有用户:select*fromdba_users;select*fromall_users;select*fromuser_users;2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):select*fr......