在一次项目中,遇到一个问题,我在A项目中,使用了a数据库和b数据库的数据。其中a数据库是我配置的主数据库,b是从数据库【相当于一个第三方库】,在执行一段代码时,如果a数据库操作失败,a数据库中的数据回滚,b数据库的数据也必须回滚。当时没有想那么多,就简单的用了一个Db::startTrans(),后来就出现问题了,代码抛出异常,a数据库中的数据回滚了,但是b数据库中的数据没有回滚,当时慌的一批呀,搞不清楚是为什么。后来问了问某某人,他说,不同数据库的事务,需要用自己的事务,相当于b数据库的事务,必须由b开启和关闭,a是无法开启b的事务的。综合他说的,我想到下面的方法。
仅供参考,如有误,请指出。
tp5.1连接多个数据库,并使用事务
最新推荐文章于 2022-12-31 17:06:34 发布
本文讲述了在项目中如何正确处理A、B两个不同数据库间的事务协调问题,避免了主从库操作冲突。通过Db::startTrans()的误区和专家建议,了解到不同数据库事务需各自独立,强调了开启和关闭事务的必要性。
摘要由CSDN通过智能技术生成