加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle中的NEW和Old以及||说明

(2019-03-04 14:30:28)
分类: 数据库
触发器中经常会用到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; 

5. '||'在oracle中用于拼接关联字段  
6.连接字符串,相当于sql server中的+,也可以用concat()函数实现连接
--连接字段
SQL> select 'ABC'||'EFG' from dual;
ABCEFG
--------------------- 
作者:斯蒂芬森VS米小鸢 
来源:CSDN 
原文:https://blog.csdn.net/u012372584/article/details/78228203 
版权声明:本文为博主原创文章,转载请附上博文链接!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有