场景:一共3张表,用A,B,C表示。两个触发器,用W,Y表示。触发器都是行级触发 AFTER INSERT OR UPDATE FOR EACH ROW
在插入或更新A表数据后,使用A表触发器W在B表插入一条记录,在B表插入的数据中有一个字段为A表的关键字。
在插入或更新B表数据后,使用B表触发器Y在C表再插入一条数据,C表的大部分字段都是A表新插入记录的字段值。
(听起来似乎有点繁琐,但由于涉及3个厂家,A,B,C表分别在3个数据库上,是使用数据库链接来实现的)
问题:每次插入或更新C表的数据都落后了一步,即实际插入C表的数据都是A表OLD的值。
对问题自己的理解:自己调试,发现在C表的触发器Y中,使用查询语句select * from A where A.关键字=NEW.xxx。(xxx是B表的字段,其值为A表新插入的关键字)查询出来的记录还是更新前的数据。
似乎是在执行触发器Y中,A表的插入记录并没有提交。
我不知道我的这种理解对不对?另外使用触发器是否能实现我的这种需求啊?万分感谢大家提出宝贵意见!!!