0

我是否需要启动事务才能在共享模式锁中创建锁?

即,要么,

$dbc -> query("SELECT * FROM table WHERE id = 1 LIMIT 1 LOCK IN SHARE MODE");

或者,

$dbc -> beginTransaction();
$dbc -> query("SELECT * FROM table WHERE id = 1 LIMIT 1 LOCK IN SHARE MODE");
$dbc -> commit();

谢谢

4

1 回答 1

0

如果您在启用自动提交的情况下启动会话(通常在 PHP 中是默认设置),则事务将启动并为您提交。如果你调用beginTransaction,它实际上应该被翻译成:

SET autocommit=0;
START TRANSACTION;

并且提交应该返回自动提交。

也就是说,如果您在自动提交模式下运行,则不需要显式启动事务并提交它。

PS:实际上即使在运行时也不需要启动事务autocommit=0,因为在执行之前不会提交任何更改commit;

于 2011-12-10T11:16:37.837 回答