在第一个窗口中执行事务1时,由于设置了隔离级别为“可重复读”,所以在第一个select语句中查询到的数据将会被锁定,直到事务1提交或回滚才会释放锁。因此,在第二个select语句中,仍然能够查询到sno为'16071032'的数据。

在第二个窗口中执行事务2时,由于没有指定隔离级别,所以默认使用数据库的隔离级别。若数据库的隔离级别是“读已提交”,则在事务2更新数据时,只有当事务1提交后才能成功更新。若数据库的隔离级别是“可重复读”,则在事务2更新数据时,由于事务1锁定了sno为'16071032'的数据,所以事务2会被阻塞,直到事务1提交或回滚。

2可重复读的测试在第一个窗口中先后设定隔离级别:1set transaction isolation level read committed --读已提交2set transaction isolation level repeatable read --可重复读然后输入事务1的语句并执行: begin tran select from student where sno=16

原文地址: https://www.cveoy.top/t/topic/9nV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录