关于mysql事务的问题

tottyandbaty tottyandbaty 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:



<?php

$dsn = 'mysql:dbname=test;host=192.168.0.72' ;
$user = 'root' ;
$password = 'root' ;

try {
$dbh = new PDO ( $dsn , $user , $password );
} catch ( PDOException $e ) {
echo 'Connection failed: ' . $e -> getMessage ();
}
for($i=0;$i<=20;$i++){
printf('loop:%d<br>',$i);
trigger($dbh);
}


function trigger($dbh){
try{
$dbh -> beginTransaction ();
$rs=$dbh->exec("update account set money=money-10 where user_id=100");
printf('exec:%d<br>',$rs);
printf('start rollback:%d<br>',__LINE__);
$dbh->rollBack ();
//这里为了测试,故意抛出异常
throw new Exception('errror 24');
$dbh -> commit ();

} catch (Exception $e) {
printf('start rollback:%d<br>',__LINE__);
$dbh->rollBack();
echo 'Connection failed2: ' . $e -> getMessage ();
}

}

?>



代码中有2个$dbh->rollBack(); 为啥循环只执行了1次?
...全文

相关推荐

MySQL嵌套事务所遇到的问题

本文主要探讨了在MySQL中使用嵌套事务可能会遇到的问题,以及对嵌套事务的理解误区。在MySQL数据库系统中,虽然支持嵌套事务的特性,但在实际应用中并不常见。嵌套事务通常是指在一个事务内部开启另

weixin_38617196

第31讲:MySQL事务的并发问题以及事务的隔离级别

此时已经模拟出了幻读的现象,事务A第一次查询xm=小江的数据时,发现并没有查询到内容,此时事务A就想在表中新增xm=小江的数据了,但是就在这个时候,事务B在表中新增了xm=小江的数据,并且已经提交了数据,比事务A快了一步,事务A在插入xm=小江的数据时,就发现报错了提示数据已经存在了,事务A就该疑问了,我查询的时候并没有这个数据呀,再次查询确实没有这个数据,再次执行写入依旧无法写入,这就是幻读的现象。

Jiangxl~

Mysql事务并发问题解决方案

此外,优化事务设计,减少不必要的事务,或者使用队列服务进行异步处理,也能有效地缓解并发问题。总之,处理MySQL事务并发问题需要综合考虑数据一致性、系统性能和业务需求。

weixin_38688145

MYSQL事务回滚的2个问题分析

如果事务中的某个操作失败,整个事务会被回滚,撤销之前成功执行的操作,以保持数据的一致性。下面我们将深入探讨两个关于MySQL事务回滚的问题。### 问题1:为什么AUTO_INCREMENT没有回滚?

weixin_38748556

MySQL长事务问题[项目代码]

MySQL中的长事务指的是那些执行时间较长的事务。在InnoDB存储引擎中,这种事务类型会引起若干性能问题。长事务的问题主要包括Undo Log的大量积累,这会降低查询性能。

s3t4u
评论
收藏 已收藏
分享
返回顶部
tottyandbaty
基础编程 21,889 成员 140,329 内容