Mysql中一个事物里面共享锁和排他锁兼容

105 阅读1分钟

Mysql版本8.0.36

共享锁和排他锁概念

共享锁:也称为读锁,一个事物加了共享锁,其它线程也可以加共享锁,但是不可以加排他锁

排他锁:通常update、delete和insert自带排他锁,给查询语句加排他锁需要在语句末尾加上for update。 也称为独占锁,即一个事物对数据加了排他锁,其他事务就只能阻塞等待。

疑问:排他锁是否会阻塞本事务的共享锁和排他锁?

我在通义千问中文AI,排他锁愈合其他事务包括自己事务的共享锁兼容。

原话是:这是因为共享锁会阻止任何事务(包括加锁事务自身)获取同一数据的排他锁,而更新操作需要排他锁来保证数据的独占访问权。

我理解的是它说同一个事务里读锁和写锁不兼容。

但是我自己测试,同一个事务里读锁和写锁是兼容的。不知道是不是版本的原因。

有懂哥知道是怎么回事吗? 还是通义千问回答错误了