tp5.1--数据库事务操作
https://blog.csdn.net/qq_42176520/article/details/88708395
使用事务处理的话,需要数据库引擎支持事务处理。比如
MySQL
的MyISAM
不支持事务处理,需要使用InnoDB
引擎。
最简单的方式是使用 transaction
方法操作数据库事务,当闭包中的代码发生异常会自动回滚,例如:
- Db::transaction(function () {
- Db::table('think_user')->find(1);
- Db::table('think_user')->delete(1);
- });
也可以手动控制事务,例如:
- // 启动事务
- Db::startTrans();
- try {
- Db::table('think_user')->find(1);
- Db::table('think_user')->delete(1);
- // 提交事务
- Db::commit();
- } catch (\Exception $e) {
- // 回滚事务
- Db::rollback();
- }
注意在事务操作的时候,确保你的数据库连接使用的是同一个。
V5.1.13+
版本开始,可以支持MySQL的XA
事务用于实现全局(分布式)事务,你可以使用:
- Db::transactionXa(function () {
- Db::connect('db1')->table('think_user')->delete(1);
- Db::connect('db2')->table('think_user')->delete(1);
- }, [Db::connect('db1'),Db::connect('db2')]);
要确保你的数据表引擎为
InnoDB
,并且开启XA事务支持。
tp5.1--数据库事务操作的更多相关文章
- TP5数据库事务操作
使用事务处理的话,需要数据库引擎支持事务处理.比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎. 使用 transaction 方法操作数据库事务,当发生异常会自动回滚 ...
- Django的ORM实现数据库事务操作
在Django中实现数据库的事务操作 在学习MySQL数据库时,MySQL数据库是支持原子操作的. 什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费. 交易正常时,银行在消费者 ...
- Spring事务传播及数据库事务操作
从Spring 事务配置说起 先看看Spring 事务的基础配置 <aop:aspectj-autoproxy proxy-target-class="true"/> ...
- tp5.1的事务操作
普通的事务操作很简单,最简单的方式是使用 transaction 方法操作数据库事务, 当闭包中的代码发生异常会自动回滚, 例如: Db::transaction(function () { Db:: ...
- Database学习 - mysql 数据库 事务操作
事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction 开启事务 rollback 回滚事务,即撤销指定的 ...
- 【Spring5】数据库事务操作
Spring针对事务的操作 事务的概念:事务是数据库最基本的单元,逻辑上的一组操作,要么都成功,如果有一个操作失败则都失败. 事务的特性:ACID 原子性.一致性.隔离性.持久性 JavaEE环境三层 ...
- TP5 模型事务操作
注意:数据只要涉及多表一致性操作,必须要开启数据库事务操作 ThinkPHP5 中模型层中使用事务: try{ $this->startTrans(); $this->data($orde ...
- 数据库事务中的隔离级别和锁+spring Transactional注解
数据库事务中的隔离级别和锁 数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性.安全性也是我们需要研究的问题.ACID首先总结一下数据库事务正确执行的四个要素(ACID): 原子性(At ...
- [转]数据库事务中的隔离级别和锁+spring Transactional注解
数据库事务中的隔离级别和锁 数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性.安全性也是我们需要研究的问题.ACID首先总结一下数据库事务正确执行的四个要素(ACID): 原子性(At ...
- MySQL事务操作
在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作.因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION ...
随机推荐
- 使用 Spacesniffer 找回 48G 系统存储空间的总结
前言 Spacesniffer 是一个免费的文件扫描工具,通过使用树状图可视化布局,可以立即了解大文件夹的位置,帮助用户处理找到这些文件夹 当前系统C盘空间 清理后系统C盘空间 下载 Spacesni ...
- Spring 对 Junit4,Junit5 的支持上的运用
1. Spring 对 Junit4,Junit5 的支持上的运用 @ 目录 1. Spring 对 Junit4,Junit5 的支持上的运用 每博一文案 2. Spring对Junit4 的支持 ...
- springcloud整合stream解决项目升级的多个消息中间件的收发问题
cloud stream (一)简介Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架.它可以基于 Spring Boot 来创建独立的.可用于生产的 Spring ...
- 【WPF】自定义数据集合绑定到UI界面
需要展示列表项,从https://github.com/jdscodelab/File-Manager-UI-Wpf这个项目,只有前端UI. 复用了其文件内容列表 主要源码: <StackP ...
- 分享一个Objectarx 的凸包算法
#include "stdafx.h" #include "MyTuBao.h" #include"MathUtil.h" MyTuBao: ...
- RHEL7.9安装Podman4.1.1并部署Redis集群
原文链接:RHEL7.9安装Podman4.1.1并部署Redis集群-语雀 环境 操作系统 cat /etc/redhat-release Red Hat Enterprise Linux Serv ...
- 在AngularJS中,控制器没有生命周期方法
在AngularJS中,控制器没有生命周期方法,但是$scope对象有一些事件,可以模拟生命周期方法的行为.例如,$scope.$on('$destroy', function() {...})可以在 ...
- codemirror-editor-vue3 编辑器只要换行保存就会有小红点
先看示例 找了篇博客写的贼详细 https://blog.csdn.net/xujingyiss/article/details/118992763 只要设置这二个 let conten ...
- linux,curl命令发送各类请求详解
当你经常面对api时,curl将是你重要学习的工具,因为curl可以让你不需要浏览器也能作为Http客户端发送请求.而且它是跨平台的,Linux.Windows.Mac都会执行的很好. 一.curl ...
- 蓝屏rtux64w10.sys
蓝屏rtux64w10.sys 环境: WIN10 + Realtek USB RTL8156B 2.5G网卡 表现: 局域网复制时,间隔性速度变为0,多次后,最终蓝屏. 解决方法: 更新驱动. 地 ...