我正在解决 MySQL 错误“尝试获取锁定时发现死锁;尝试重新启动事务”。
我将不得不更新程序以允许死锁。该SELECT语句是否可能会产生死锁错误?我知道它只是一个读锁,所以多重选择不会有问题,但是如果有一个INSERT, UPDATEorDELETE语句(可能有连接的子查询)和一个SELECT语句(可能有连接或子查询)怎么办?
是否有可能在SELECT而不是INSERT,UPDATE或上抛出错误DELETE。
我有一个看起来像这样的金融交易(伪):
begin
select record for update
update record(same record as selected)
insert another record into another table
commit
Run Code Online (Sandbox Code Playgroud)
如果我SELECT ... FOR UPDATE在事务中调用,是否只有在提交事务时才会释放特定行的锁?