trigger update-trigger 获取不到值,为何

问题描述

trigger 获取不到值,为何

应需求,需要在程序运行后直接更改DB的数据,因系统不是我们能够控制,所以只有通过TRIGGER来写,可是这几天一直运行不成功,大家看看以下逻辑是否不对
有两表A,B,字段如下,要求如果表B中E='RTN'时,将表A的O更新为'FD'
TABLE A
字段 M,W,O 主键为M
TABLE B
字段 M,W,E,无主键
程序运行时做了两步动作( 其中A,B表中的W字段一定相差1 ):
INSERT INTO B(M,W,E)VALUES('056',2,'RTN');
UPDATE A SET W=3,O='PK' WHERE M='056';
COMMIT;

写了个TRIGGER是BEFOR UPDATE ON A 时更新A表数据,我的理解应该是OK的,但是执行时发现根据:NEW.W-1和M 找不到B表E字段的资料---原因不明...求教啊...

其他TRIGGER好象都没有办法做到:
1.如果TRIGGER写的是BEFOR INSERT ON B 进行UPDATE A表,那么UPDATE的信息马上又会被程序的UPDATE语句更新掉,未达到效果
2.如果TRIGGER写的是AFTER INSERT ON B 进行UPDATE A表, 同上,也无法达到效果
3.使用AFTER UPDATE ON A 时更新A表数据,这个应该会执行失败,不允许更新:NEW的值

时间: 2024-11-17 07:23:22

trigger update-trigger 获取不到值,为何的相关文章

浅析C#绑定变量和匿名块获取获取序列当前值

我们将谈到C#绑定变量和匿名块获取获取序列当前值,首先需要在Oracle中进行一系列的操作,接下来是C#绑定变量的具体操作. 1.在Oracle中建立表.序列.触发器: SQL> create table TESTTAB ( ID NUMBER, NAME VARCHAR2(10) ); 表被创建 SQL> create sequence TESTTABSEQ minvalue 1 maxvalue 999999999999999999999999999 start with 1 increm

在Python中用get()方法获取字典键值的教程

  这篇文章主要介绍了在Python中用get()方法获取字典键值的教程,是Python入门中的基础知识,需要的朋友可以参考下 get()方法返回给定键的值.如果键不可用,则返回默认值None. 语法 以下是get()方法的语法: ? 1 dict.get(key, default=None) 参数 key -- 这是要搜索在字典中的键. default -- 这是要返回键不存在的的情况下默认值. 返回值 该方法返回一个给定键的值.如果键不可用,则返回默认值为None. 例子 下面的例子显示了g

文本框内容拆解获取里面的值进行校验

问题描述 文本框内容拆解获取里面的值进行校验 从页面的文本框中获取对应的VO,但是VO的值是如:a,b,c有逗号相隔,问题是如何才能对拆解这个值获取里面的每个值进行校验 解决方案 用split函数,很多编程语言都支持这个函数,但是调用略有差别,你google下. 解决方案二: split或者用正则验证下

java-如何在页面调用一个方法获取它的值

问题描述 如何在页面调用一个方法获取它的值 <%String strid = request.getParameter(""id"");String giftid=new String(request.getParameter(""id""));System.out.println(strid);int gid=Integer.parseInt(strid);System.out.println(gid);Gift gt

var-在使用jQuery时,应该如何花获取元素的值呢

问题描述 在使用jQuery时,应该如何花获取元素的值呢 比如下面的代码 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &l

如何获取DataRow[]的值

 这篇文章主要介绍了如何获取DataRow[]的值,需要的朋友可以参考下 首先,DataRow[] dr = dt.Select("t1='a'"); 得出的结果是一个数组,你只要循环这个数组就好了.  代码如下: string x="";  if (dr.Length > 0)  {  foreach (DataRow drN in dr)  {  x+=drN["t2"]; //循环获得过滤条件后 t2列的值  }  }    注意要是

Python实现遍历数据库并获取key的值

  本文给大家分享的是Python实现遍历数据库并获取key的值的方法,主要是使用for循环来实现,有需要的小伙伴可以参考下. 遍历Redis数据库中有以格式为PREFIX_*的按照key-value方式存储的key,并打印其值. 遍历使用SCAN,因为KEYS PREFIX_*可能会造成Redis长时间阻塞. 查询使用pipeline减少交互,提高效率. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 impor

Jquery 改变radio/checkbox选中状态,获取选中的值

 这篇文章主要介绍了Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助 //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_category").each(function() {  if ($(this).attr('checked')){                         $(this).attr('checked' ,false);                

jQuery.position()方法获取不到值的安全替换方法

 这篇文章主要介绍了jQuery.position()方法获取不到值的安全替换方法,本文给出了一种变通的方法,用.offset()来换算,需要的朋友可以参考下     调用jQuery.position()方法会返回相对于父元素的位置,jQuery官方文档中描述说,它跟.offset()方法不一样,.offset()返回的是相对于document的位置,而.position()返回的是相对于父元素的位置. 但事实上,在使用的过程中,我们发现.position()返回的值经常是0.但事实不是0.尤