怎么理解数据库触发器中的NEW和OLD

发布时间:2021-11-08 13:55:25 作者:iii
来源:亿速云 阅读:348

这篇文章主要讲解了“怎么理解数据库触发器中的NEW和OLD”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解数据库触发器中的NEW和OLD”吧!

我创建了这两张表,并在plch_parts表中加了两行数据:

CREATE TABLE plch_parts
(
   partnum    NUMBER
,  partname   VARCHAR2 (50)
)
/
BEGIN
   INSERT INTO plch_parts
        VALUES (123, 'Steering Wheel');
   INSERT INTO plch_parts
        VALUES (456, 'Brake Pedal');
   COMMIT;
END;
/
CREATE TABLE plch_log
(
   partnum      NUMBER
,  partname     VARCHAR2 (50)
,  changed_on   DATE
,  changed_by   VARCHAR2 (100)
)
/

然后我在 plch_parts 表上加了个触发器:

CREATE OR REPLACE TRIGGER plch_parts_trig
   AFTER UPDATE
   ON plch_parts
   FOR EACH ROW
DECLARE
BEGIN
   INSERT INTO plch_log
        VALUES (:new.partnum
              ,  :new.partname
              ,  SYSDATE
              ,  USER);
END plch_parts_trig;
/

然后我执行了这个块:

BEGIN
   UPDATE plch_parts
      SET partnum = -1 * partnum
    WHERE partname = 'Brake Pedal';
   UPDATE plch_parts
      SET partname = UPPER (partname)
    WHERE partnum = 123;
   COMMIT;
END;
/

下列选项哪些显示了这个查询的结果:

SELECT partnum, partname
    FROM plch_log
ORDER BY partnum
/

(A)

   PARTNUM PARTNAME                                          
---------- ------------------
      -456 Brake Pedal                                       
       123 STEERING WHEEL

(B)

   PARTNUM PARTNAME                                          
---------- ------------------
       123 Steering Wheel
       456 Brake Pedal

(C)

   PARTNUM PARTNAME                                          
---------- ------------------
       123 STEERING WHEEL  
       456 Brake Pedal

(D)

   PARTNUM PARTNAME                                          
---------- ------------------
       123 STEERING WHEEL  
      -456 Brake Pedal

答案A

SQL> SELECT partnum, partname
  2      FROM plch_log
  3  ORDER BY partnum
  4  /
   PARTNUM PARTNAME
---------- --------------------------------------------------
      -456 Brake Pedal
       123 STEERING WHEEL
SQL>

感谢各位的阅读,以上就是“怎么理解数据库触发器中的NEW和OLD”的内容了,经过本文的学习后,相信大家对怎么理解数据库触发器中的NEW和OLD这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 数据库中触发器
  2. PHP new self()和new static()的区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库

上一篇:PostgreSQL中关于xid freeze的脚本有哪些

下一篇:运维常用命令有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》