insert into t1(f1,f2) values(v1,v2);
update t2 set f3=f3+1 where pk=id;
往 t1 表插入一条明细记录时,同时将 t2 表中的计数字段 f3 加 1,2个dml语句在同一个事务中执行。
在本机的测试环境一切都正常
发布到生产环境中,访问比较集中的时候,会出现 t1 表中的记录数比 t2 表中的计数值大
请高手帮忙分析一下,这是什么原因操作的,谢谢!
解决方案 »
- Oralce安装问题
- 高手指点,如何实现在pl/sql中
- ORACLE数据库windows XP中文版导入windows XP英文版出错
- 求oralce 10g下正则表达式
- redo log 多久切换一次比较合适
- 从分区表中导出两个分区的部分数据插入到另一个有相同两个分区的表中,为什么目标表中两个分区没有数据
- java连接oracle问题?
- 救命啊!有个存储过程卡住了,查看相关会话,发现当前操作什么都没有,高手帮忙啊!
- 9i,怎样知道SQL的执行效率,请各位老大指点啊???
- 怎样用动态语句在9i中实现对表的判断
- ORacle 写 blob字段 出错 ,求大神指点
- 安装oracle 11g R2 rac遇到节点错误,麻烦高手专家帮忙解答下,感谢
2 update t2 set f3=f3+1 where pk=id;第2条update中"pk=id"条件不满足这种情况有没有算进去??
t1 和 t2 有主外键关系的,所以 "pk=id"条件肯定都是成立的。
事务1提交后,事务2会执行INSERT和UPDATE,并提交。
整个逻辑上貌似没有问题,但是INSERT执行了2次,UPDATE后面的 F3+1的F3可能值相同,如这样,就会导致T2比T1少的情况。改用触发器吧