几个线程同时进行事务并发的问题。。
几个线程同时进行事务A。。
如果事务A里面有一个步骤1:是对某一个表某条固定记录进行更新操作的。。
问题1:那是不是表行会被锁住,线程之间后一个必须等前一个提交事务才继续(“运行”还是“提交事务”)?
事务A有一个步骤2:是对某个表进行INSERT记录的;
事务A提交前还有一个步骤3:是比较步骤2的数据,如果出现INSERT的记录超过要求,就回滚。。
问题2:如果问题1的答案是提交事务,如果发生并发,步骤3这一步是不是没用了,检测不了?如果答案是运行,那可以防并发吗?
问题3:如果问题2解决不了,是不是一定要在步骤2 INSERT记录前进行这个表的SELECT FOR UPDATE进行行锁?这应该可以解决并发了吧,有没人其它办法呀。
希望有前辈指导一下,谢谢。。。