insert into a 表 select * from b 表 where not exists ( select 1 from c 表 where .... );
执行这条语句,发现 c 表 被锁了?
为什么一张查询的关联表会被锁呢?
数据引擎是 innodb
1
luoyou1014 2021-01-15 16:07:54 +08:00
C 表不锁,B 表会出现幻读。
|
2
cirton OP @luoyou1014 可以在更新 a 表时不锁 c 表吗?
现在更新 a 表时,c 表就会被锁导致业务暂停。对 mysql 不太熟,一般怎么处理这种情况呢? |
3
qiayue 2021-01-15 16:29:40 +08:00
不要用一条语句完成这个业务,用程序来完成
|