Oracle触发器条件更改新插入记录的字段值

版权声明:未经博主允许,请勿转载原创,谢谢! https://blog.csdn.net/mystonelxj/article/details/84878485

最近,有个项目功能需要在Oracle数据库中对表的记录做动态更新,实现一插入指定条件的记录,就修改相关字段值。尝试了下,最终做到每当插入时就能够更新记录某字段值。

这里用PL/SQL做了相关实现。

相关表名称为Person ,其属性字段如下:

具体需求为:当插入记录年龄(字段Age)小于20时,修改记录电话号码,将电话号码添加区号标志。根据这需求,在PL/SQl建立触发器

首先,选择表Person,查找到Trigger,点击右键“New”,打开触发器对话框

在“触发器”对话框中,自定义名称,选择Fires(触发点) 为 after,Event(触发事件) 选择insert,最后点击 “OK”按钮,进行具体触发器事件编写

最终触发器方法,书写如下,完成后,点击 PL/SQL 执行按钮,确保其生效。

create or replace trigger test
  before insert
  on PERSON 
  for each row
    
declare
  -- local variables here
begin
   if :new.age<20 then 
      :new.telephone:='(21)' || :new.telephone;
      end if;
end test;

编辑完成后,进行测试,在 PL/SQL 的 SQL Window 执行如下插入语句

insert into PERSON (ID, FIRSTNAME, SECONDNAME, AGE, ADDRESS, TELEPHONE, EMAIL)
values (3, '张三', '三前', 13, '黄埔中路', '6231324', '[email protected]');

最后查询结果如下,电话号码自动做更新

猜你喜欢

转载自blog.csdn.net/mystonelxj/article/details/84878485