版权声明:未经博主允许,请勿转载原创,谢谢! 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]');
最后查询结果如下,电话号码自动做更新