美文网首页
laravel - 跨库事务

laravel - 跨库事务

作者: lemon_jun | 来源:发表于2020-07-01 14:22 被阅读0次

在平时工作中 很多时候会碰到 要求数据一致性的场景
这个时候必不可少的 要应用到事务
背景:
朋友用laravel 在开发后台时发现开启事务后并没有生效
在未经过commit() 数据依然存储到了数据库中
查看文档,beginTransaction 不会自动提交
最后他自己发现是跨库导致 在此做个记录

1、laravel事务操作有两种可以选择
1.1、自动 transaction 不需要担心回滚or提交

示例:
 DB::transaction(function () {
    DB::table('users')->update(['votes' => 1]);
    DB::table('posts')->delete();
});

1.2、beginTransaction 手动提交or回滚

DB::beginTransaction();开启事务
DB::rollback(); 回滚
DB::commit(); 提交

2、跨库事务操作
2.1、当你在框架中使用DB::beginTransaction(); 时,开启的是默认配置的数据库,如果想操作另外一个库 需要进行指定

示例:
DB::beginTransaction(); 开启默认数据库事务
DB::connection('test')->beginTransaction(); 开启指定数据库事务

//数据处理流程

if(true)
{
  //提交
  DB::commit();
  DB::connection('test')->commit();
}else{
  //回滚
  DB::rollback();
  DB::connection('test')->rollback();
}

相关文章

  • laravel - 跨库事务

    在平时工作中 很多时候会碰到 要求数据一致性的场景这个时候必不可少的 要应用到事务背景:朋友用laravel 在开...

  • Laravel 文章汇集

    LARAVEL .ENV文件配数组laravel redis操作大全laravel5篇之使用事务laravel多库...

  • laravel transaction 数据库事务

    laravel 提供专门的闭包的数据库事务,可以自动回滚事务也可以手动回滚事务

  • Mycat1.6事务问题

    使用Mycat用于读写分离时,对数据库的事务不跨库,如果硬要打开事务没有关闭的话,容易产生系统事务紊乱等问题。...

  • 消息中间件实现分布式事务

    理论基础 什么是分布式事务 传统的事务是基于单数据库的本地事务,简单的来说,分布式事务就是实现跨数据库的事务支持 ...

  • 分布式事务

    大纲 1.本地事物 - ACID - 本地事务模型2.分布式事物 - 分布式事务概念 - 跨库事务 - 服务化事务...

  • 跨域ajax携带cookie

    最近在使用 laravel 开发时碰到了需要在跨域ajax请求中携带cookie的需求,参考Laravel开启跨域...

  • 【8】分布式事务

    【两阶段提交方案】-- 单块应用的跨多个库的分布式事务 【TCC方案】

  • laravel事务

  • Laravel5.5 支付宝手机网站支付实例

    1、安装使用Laravel扩展库yansongda/laravel-payyansongda/laravel-pa...

网友评论

      本文标题:laravel - 跨库事务

      本文链接:https://www.haomeiwen.com/subject/plwcqktx.html