存储过程中的mysql事务(锁定/回滚)
存储过程中的事务是否执行任何锁定以防止其他人更新表 我还需要显式地加入回滚逻辑,或者如果发生错误,事务将自动回滚,因为它从未到达commit命令 存储过程中的事务是否执行任何锁定以防止其他人更新表 当您在存储过程中的mysql事务(锁定/回滚),mysql,Mysql,存储过程中的事务是否执行任何锁定以防止其他人更新表 我还需要显式地加入回滚逻辑,或者如果发生错误,事务将自动回滚,因为它从未到达commit命令 存储过程中的事务是否执行任何锁定以防止其他人更新表 当您在InnoDB表上执行一些DML时,受影响的行将被锁定,直到事务结束(不管它是否在存储过程中) 您可以在锁定它的同一事务中修改锁定的行 要显式锁定某些行,请发出: SELECT * FROM table WHERE condition FOR UPDATE 除了提交或回滚事务外,没有
InnoDB
表上执行一些DML
时,受影响的行将被锁定,直到事务结束(不管它是否在存储过程中)
您可以在锁定它的同一事务中修改锁定的行
要显式锁定某些行,请发出:
SELECT *
FROM table
WHERE condition
FOR UPDATE
除了提交或回滚事务外,没有其他方法可以解锁行
我是否需要显式地放入回滚逻辑,或者如果发生错误,事务是否会自动回滚,因为它从未到达commit命令
您需要显式执行回滚。我想我要问的是,在事务期间,行是否保持锁定状态。这意味着,如果我有多个更新,锁将在每次更新后释放,或者仅在所有更新完成后释放,因为它们位于事务中。锁将保留到事务结束,这就是锁定的全部要点:)