多库多表之间的事务

项目中分库分表,
那么代码中,循环对这些库进行处理的话,加入操作其中一个库的时候出现了异常,会不会回滚其他
的库的操作,理论上事务是由数据库管理的,不同库之间的操作应该是不影响的,但是考虑有一种情况,循环操作20个表,其中1和11是在一个库里的,那么当11出现异常时,是否会影响1库的操作,
还有2~10的库呢?

阅读 3.8k
1 个回答

只要在一个事务里哪怕是不同库里的操作,都是一起成功或一起失败。

为什么不自己试试呢?

set autocommit = 0;
update db1.t1 set c1='test' where id = 1 ;
select sleep(3);
update db2.t1 set c1='test' where id = 1;/*db2.t1表故意不要创建c1列制造错误*/
select sleep(3);
commit;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题