把我遇到的问题简化一下:
1、我需要在表A中插入或删除一条数据,完成后,统计A表中数据条数(COUNT)。
2、为此我建立了一个触发器。但这会造成数据库提示的“data is mutating,the trigger may not see it”的错误。
3、于是我采用了“自治事务”来解决这一问题。
4、通过“自治事务”我能让触发器运行起来。但我又因此遇到了另一问题:统计出的A表中的数据条数,是在插入或者删除数据之前的A表中的数据条数。
谁能给我个解决方法?Oracle数据库触发器自治事务
1、我需要在表A中插入或删除一条数据,完成后,统计A表中数据条数(COUNT)。
2、为此我建立了一个触发器。但这会造成数据库提示的“data is mutating,the trigger may not see it”的错误。
3、于是我采用了“自治事务”来解决这一问题。
4、通过“自治事务”我能让触发器运行起来。但我又因此遇到了另一问题:统计出的A表中的数据条数,是在插入或者删除数据之前的A表中的数据条数。
谁能给我个解决方法?Oracle数据库触发器自治事务
但此时是没有提交的,触发器就相当于另一个session了。
所以 看到的 是 没有提交前的总数
新建一张临时表,用来存表A的记录条数。
在表A建立插入和删除触发,触发器的代码是把表A的记录条数插入临时表。
然后读取临时表的数据即可。