哟蛤 2021-04-04 12:43 采纳率: 28.6%
浏览 160

隔离级别REQUIRES_NEW报CannotAcquireLockException

事务A增加一条数据,事务B随之修改这条数据

事务A隔离级别为REQUIRED,事务B隔离级别为REQUIRES_NEW

执行时产生CannotAcquireLockException

 

用的是mysql数据库,InnoDB。根据REQUIRES_NEW的说明,外层事务会被挂起,所以它应该还没提交,那么内层事务能否看见这条数据,根据结果来看貌似是能看见但是无法获取,所以事务挂起锁也不会被释放?事务没提交也能看见这条数据?

只是个人猜测,能否更详尽的解释这个现象呢?

 

 
  • 写回答

1条回答 默认 最新

  • 西红柿炒鸡蛋Ooo 2021-04-04 12:51
    关注

    你是A运行完运行B还是A运行中又调用了B?

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据