java吧 关注:1,223,766贴子:12,678,806
  • 9回复贴,共1

求大佬指教,事务隔离问题

只看楼主收藏回复

事务A中修改了数据字段x为1,事务A结束后,开启事务B,事务B中先修改x为2,修改完在事务B中查询这笔数据,查询条件为x=1,能查出来这条数据吗。
我现在的情况就是事务B中查不出这笔数据,但是数据库连接工具里能查到这笔数据(因为事务b还没有提交修改)


IP属地:浙江来自iPhone客户端1楼2023-10-31 16:38回复


    IP属地:浙江来自iPhone客户端2楼2023-10-31 16:40
    回复
      查不出是正常的呀,同一个事务,没有隔离吧


      IP属地:上海来自Android客户端3楼2023-10-31 16:47
      回复
        快来大佬


        IP属地:浙江来自iPhone客户端4楼2023-10-31 16:50
        回复


          IP属地:浙江来自iPhone客户端5楼2023-10-31 16:57
          回复
            什么隔离级别?


            IP属地:上海来自Android客户端6楼2023-10-31 17:03
            回复
              这不很正常吗,二事务串行化的,你事物b里修改为2了,再查当然看不到了。但是你用连接工具查,事务b又没有提交,当然能查询到了。还是好好去补基础吧


              IP属地:山东来自Android客户端7楼2023-10-31 18:19
              回复
                同一个事务,你修改了x,这个修改对本事务是可见的,你查x=1自然就查不出结果。


                IP属地:天津来自Android客户端8楼2023-10-31 18:47
                回复
                  默认rr可重复,你这么搞是查不出来的。除非你a改前你b查一次a=1,a改完你b再查a=1可以查出来。


                  IP属地:广东来自Android客户端9楼2023-10-31 18:52
                  回复
                    可重复读,你数据库开新一个链接是一个新的事务,不可以读取到未提交的事务,去了解一下rr和rm里面的mvcc怎么搞的你就清楚了


                    IP属地:广东来自Android客户端11楼2023-10-31 18:55
                    回复