繁体   English   中英

MySQL ROLLBACK并与PHP一起使用

[英]MySQL ROLLBACK and use with PHP

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1 FOR UPDATE;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;

我直接从MySQL官方文档中获取了此查询,我想知道某些方面(我为FOR UPDATE添加了自己)。 假设有另一个用户已经对该记录进行了锁定。 在这种情况下,更新将失败。 如果发生这种情况,我肯定希望向用户显示一个消息框,该消息框将提醒用户该记录已锁定。 我如何将这些信息重新输入PHP? 默认情况下,该查询是否也不会回滚,或者我是否特别需要添加ROLLBACK?

提前致谢!

您必须将自动提交变量的值重置为OFF / 0 / FALSE 尝试这个:

SET SESSION autocommit = 0;
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1 FOR UPDATE;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM