egg中使用sequelize事务,实现原子性
let transaction;
try {
// 建立事务对象
transaction = await this.ctx.model.transaction();
const house = await ctx.model.House.create({
address,
area: data.area,
floor: data.floor,
attribute: data.attributeID,
sign: data.signID,
remark: data.remark,
}, {
transaction,
});
await ctx.model.CommunityHouse.create({
community_id: data.communityID,
house_id: house.id,
}, {
transaction,
});
// 提交事务
await transaction.commit();
} catch (e) {
// 事务回滚
await transaction.rollback();
}
其他增删改查
let transaction;
try {
// 建立事务对象
transaction = await this.ctx.model.transaction();
// 事务增操作
await this.ctx.model.VirtualDeptMember.create({
JSON格式数据
}, {
transaction,
});
// 事务删操作
await this.ctx.model.VirtualDeptMember.destroy({
where: {
JSON格式数据
},
transaction,
});
// 事务改操作
await this.ctx.model.Device.update({
修改的JSON数据
}, {
where: {
查询的JSON数据
},
transaction,
});
// 提交事务
await transaction.commit();
} catch (err) {
// 事务回滚
await transaction.rollback();
}
egg中使用sequelize事务,实现原子性的更多相关文章
- Egg.js中使用sequelize事务
对数据库的操作很多时候需要同时进行几个操作,比如需要同时改动几张表的数据,或者对同一张表中不同行(row)或列(column)做不同操作,比较典型的例子就是用户转账问题(A账户向B账号汇钱): 1 从 ...
- 在egg中配置 sequelize
如何在eggjs中引入 sequlize 安装 第一步,在项目中安装 egg-sequelize插件和mysql插件 npm install --save egg-sequelize mysql2 第 ...
- 实例详解 EJB 中的六大事务传播属性--转
前言 事务 (Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元 (unit).在关系数据库中,一个事务可以是一条或一组 SQL 语句,甚至整个程序.它有通常被称为 ACI ...
- 浅谈.net中数据库操作事务
.net中的事务 关键几点 概念:1:什么是事务 2:什么时候用事务 3:基本的语法 (1): 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常 ...
- 事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability.。
事务的四大属性ACID即事务的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability.. 原子性(Atomicity) 原子性是指事 ...
- JavaWeb_(Spring框架)Spring中的aop事务
1.事务相关知识 a)什么是事务:把多条数据库操作捆绑到一起执行,要么都成功,要么都失败: b)事务的原则ACID: i.原子性:事务包含的所有操作,要么全部成功,要么全部失败回滚,成功全部应用到数据 ...
- 事务特性,事务的隔离级别以及spring中定义的事务传播行为
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- 面试官:Redis的事务满足原子性吗?
原创:码农参上(微信公众号ID:CODER_SANJYOU),欢迎分享,转载请保留出处. 谈起数据库的事务来,估计很多同学的第一反应都是ACID,而排在ACID中首位的A原子性,要求一个事务中的所有操 ...
- Spring 中的 JDBC 事务
Spring 对 JDBC 的支持 JdbcTemplate 简介 •为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. • ...
随机推荐
- errorC2471:cannot update program database vc90.pdb
解决办法: C/C++ | General | Debug Information format | C7 Compatible (/Z7) C/C++ | Code Generation | Ena ...
- nginx实现跨域访问并支持(GET, POST,PUT,DELETE, OPTIONS)
最近有同事提出在使用客户端跨域访问的时候,发现服务器对option请求返回了403,后来查看了网络添加了一段配置,发现option服务返回204了,但是后续的put操作也直接返回了204导致无法使用图 ...
- MATLAB基础学习篇(1)
MATLAB中只定义了以2和10为底对数,其它 使用换底公式,例如:log8(7)=log7/log8. x=input('Please enter x:'); y=input('Please ent ...
- 我们一起来学Shell - shell的数组
文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...
- VS Code开发TypeScript
TypeScript是JaveScript的超集,为JavaScript增加了很多特性,它可以编译成纯JavaScript在浏览器上运行.TypeScript已经成为各种流行框架和前端应用开发的首选. ...
- 深入MySQL(一):MySQL的组织架构
今天开始将自己所学过的MySQL的知识都尝试融会贯通,并且用写博客的方式记录分享下来. 今天讲的主题是MySQL的组织架构,对于学习一个中间件或者开源项目而言,我觉得最重要的便是先知晓其组织架构,以一 ...
- 关于Linux操作系统的命令行文件拷贝
关于Linux操作系统的命令行文件拷贝 起因:服务器的加密狗秘钥过期导致无法使用服务,需要将服务器里面的秘钥文件发送给授权人员.本以为十分容易,打开服务器,图形界面点击发送即可.没想到服务器的界面是命 ...
- 中国首个进入谷歌编程之夏(GSoC)的开源项目: Casbin, 2022 年预选生招募!
Casbin 明日之星预选生计划-Talent for Casbin 2022 "Casbin 明日之星预选生计划-Talent for Casbin 2022"是什么? &quo ...
- logstash获取nginx日志的配置
nginx部分配置直接用json,省去很多麻烦 log_format json '{"@timestamp":"$time_iso8601",' '" ...
- linux系统开机流程
基本步骤:上电->bios->MBR引导->GRUB菜单->加载内核->运行init进程初始化->启动/etc/rc.d*脚本与相关配置文件->执行rc.lo ...