Laravel之路(事务)mysql事务
Posted 与f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel之路(事务)mysql事务相关的知识,希望对你有一定的参考价值。
其实关于mysql的事务(原声mysql语句),我在我的博客里面有提到(mysql的文章分类下)
今天看下基于laravel框架ORM的处理
准备:
表必须是InnoDB引擎
DB::beginTransaction(); try{ $name = \'abc\'; $result1 = Test::create([\'name\'=>$name]); if (!$result1) { /** * Exception类接收的参数 * $message = "", $code = 0, Exception $previous = null */ throw new \\Exception("1"); } $result2 = Test::create([\'name\'=>$name]); if (!$result2) { throw new \\Exception("2"); } DB::commit(); } catch (\\Exception $e){ DB::rollback();//事务回滚 echo $e->getMessage(); echo $e->getCode(); }
注意:如果id是自增的话,mysql的primary key是在内存中维护的,事务回滚是不会回退id,所以中间会出现断层
转:https://www.cnblogs.com/xj76149095/p/6222066.html
以上是关于Laravel之路(事务)mysql事务的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 数据库事务是不是会使用 RefreshDatabase 或 DatabaseTransactions 破坏 Laravel PHPUnit 测试?