只读事务
session1中:
SQL>set transaction read only; ---时间点1 //必须是事务开始的第一条语句
SQL>查询表a语句; ---时间点3
session2中:
SQL>修改表a语句;
SQL>commit; ---时间点2
//当在时间点3查询表a,数据仍然是时间点2修改之前的旧数据
顺序事务:
session1
设置只读事务后会导致当前session无法执行DML操作,顺序事务可以解决
SQL>set transaction isolation level serializable; ---时间1 //必须是事务开始的第一条语句
SQL> 查询表a语句;
SQL>修改表b语句; ---时间3 //若时间1设置的事务只读,则这里修报错
session2
SQL> 修改表a语句;
SQL>commit; ----时间2
//sessin1中在时间3时查询表a仍是修改前数据,且此时允许对其他表执行DML操作
本文探讨了只读事务和顺序事务的特点及应用场景。只读事务确保了在事务执行期间,即使其他会话对同一数据进行了修改并提交,该事务仍能读取到修改前的数据。顺序事务则通过设置隔离级别为串行化来实现类似的效果,同时允许对其他表进行数据修改操作。
2856

被折叠的 条评论
为什么被折叠?



