oracle中两个事务update同一行记录时,后执行的事务是否必须等待?
问题描述:
事务1:
update table_a set createtime = sysdate where id=1;
select * from table_a;
...
事务2:
update table_a set createtime = sysdate where id=1;
select * from table_a;
...
两个事务同时跑,如果事务1先执行了update语句但是没有commit或者rollback,那么事务2可以执行吗?还是必须等待事务1呢?
求大神解惑!
答
一定是必须等待的
有时候会刻意这么做,来防止并发出现的问题
有个名词叫“悲观锁”说的就是这个情形。
答
没有 线程并行,肯定是单一线程 一直执行下去的