zoukankan      html  css  js  c++  java
  • oracle 如何用触发器实现更新刚插入的数据

    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


  • 相关阅读:
    CentOS 6.5通过yum的方式安装MySql
    Hbase集群搭建
    Thread类的常见问题
    关hashMap跟hashTable的区别
    mysql 循环插入100w
    Centos 多个mysql数据库
    CentOS 搭建 FastDFS-5.0.5集群
    RPC
    dubbo简述
    自己去看dubbo源码
  • 原文地址:https://www.cnblogs.com/nuaaydh/p/4419350.html
Copyright © 2011-2022 走看看