0

我有一个简单的存储过程,出于测试目的,我已经注释掉了 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

我想检查如果在交易尚未提交时拔掉网线会发生什么。结果是事务被回滚,但整个表的锁没有被释放。结果我不能对桌子做任何事情。有时,无缘无故释放锁需要长达 20 分钟。如何确保已使用的资源在 ROLLBACK 时已解锁?

4

0 回答 0