存储过程中的mysql事务(锁定/回滚)

时间:2009-04-28 18:02:01

标签: mysql

存储过程中的事务是否进行任何锁定以防止其他人更新表?

我还需要显式放入回滚逻辑,否则如果发生错误,事务会自动回滚,因为它永远不会到达提交命令。

1 个答案:

答案 0 :(得分:0)

  

存储过程中的事务是否进行任何锁定以防止其他人更新表?

当您在DML表上执行某些InnoDB时,受影响的行会被锁定,直到事务结束(无论是否在存储过程中)。

您可以修改锁定它的同一事务中的锁定行。

要显式锁定某些行,请发出:

SELECT  *
FROM    table
WHERE   condition
FOR UPDATE

除了提交或回滚交易外,没有其他方法可以解锁行

  

我是否需要显式放入回滚逻辑,否则如果发生错误,事务会自动回滚,因为它永远不会到达提交命令。

您需要明确执行回滚。