我是否需要启动交易才能在共享模式锁定中创建锁定?
即,
$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();
由于
答案 0 :(得分:0)
如果启动启用了自动提交的会话(通常是PHP中的默认设置),则会启动并提交事务。如果你致电beginTransaction
,它实际上应该被翻译成:
SET autocommit=0;
START TRANSACTION;
并且commit应该返回autocommit。
如果您在自动提交模式下运行,那么您不需要显式启动转换并提交它。
P.S。:即使您在autocommit=0
中运行,您实际上也不需要启动交易,因为在执行commit;
之前不会提交任何更改