首页 > 数据库技术 > 详细

oracle 如何用触发器实现更新刚插入的数据

时间:2015-04-12 13:22:45      阅读:412      评论:0      收藏:0      [点我收藏+]
oracle 如何用触发器实现更新刚插入的数据
create or replace trigger tr_name
before insert
on 表
for each row
begin
:new.某字段=‘新值‘;
end;

修改A表的某条数据的某个字段AA(这个字段是规定好的),在保存后A表的该条数据的另一个字段BB会根据一个函数把AA字段的值处理后更新
create or replace trigger BF_ZJ_UPDATEZJM
  after update of aa on a
for each row
begin
update a set bb=F_PINYIN(:new.aa) where pk_id=:old.pk_id;
end;
---pk_id为你表A的主键,---bb=F_PINYIN(:new.aa) 将新的aa值经过函数处理后更新BB字段
你可以测试下,看是否能够更新并且并发操作是否会出现死锁 

四楼说的对
---pk_id为你表A的主键,---bb=F_PINYIN(:new.aa) 将新的aa值经过函数处理后更新BB字段
你可以测试下,看是否能够更新并且并发操作是否会出现死锁
 结果是会出现
谢谢大家的帮忙现在问题已经解决了, 之前的思路想错了,如果要对同一张表操作的话,不应该用 after update  而应该是before update ,就是应该在update之前进行更改 而且这是update哪条数据 就对那条数据进行修改,所以
if(:old.pk_medinvbasdoc = :new.pk_medinvbasdoc) then
   :new.invmnecode := F_PINYIN(:new.invname) 
就可以了
谢谢大家的帮助了,thank you
http://bbs.csdn.net/topics/380200537


oracle 如何用触发器实现更新刚插入的数据

原文:http://www.cnblogs.com/nuaaydh/p/4419350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!