我有一个简单的存储过程,出于测试目的,我已注释掉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上解锁使用的资源?