没有交易我可以“锁定共享模式”吗?

时间:2011-12-10 10:03:04

标签: mysql transactions database-locking

我是否需要启动交易才能在共享模式锁定中创建锁定?

即,

$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();

由于

1 个答案:

答案 0 :(得分:0)

如果启动启用了自动提交的会话(通常是PHP中的默认设置),则会启动并提交事务。如果你致电beginTransaction,它实际上应该被翻译成:

SET autocommit=0;
START TRANSACTION;

并且commit应该返回autocommit。

如果您在自动提交模式下运行,那么您不需要显式启动转换并提交它。

P.S。:即使您在autocommit=0中运行,您实际上也不需要启动交易,因为在执行commit;之前不会提交任何更改