问题描述
- 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