数据库连接中断时,不释放FOR UPDATE锁定

时间:2019-05-03 11:54:37

标签: mysql stored-procedures select-for-update

我有一个简单的存储过程,出于测试目的,我已注释掉COMMIT语句。

BEGIN

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
    ROLLBACK; 
    RESIGNAL;  
END;

    START TRANSACTION; 
        SELECT * FROM Kimmel_tree FOR UPDATE;
        INSERT INTO Kimmel_tree (name, guid) VALUES('abc', 'abcd');         
    #COMMIT;
END

我想检查在尚未提交事务时拔掉Internet电缆会发生什么情况。结果是回滚了事务,但未释放整个表上的锁。结果,我无法对桌子做任何事情。有时,无缘无故地释放锁最多需要二十分钟。如何确保在ROLLBACK上解锁使用的资源?

0 个答案:

没有答案