鍍金池/ 問答/Java  數(shù)據(jù)庫/ 多庫多表之間的事務(wù)

多庫多表之間的事務(wù)

項目中分庫分表,
那么代碼中,循環(huán)對這些庫進(jìn)行處理的話,加入操作其中一個庫的時候出現(xiàn)了異常,會不會回滾其他
的庫的操作,理論上事務(wù)是由數(shù)據(jù)庫管理的,不同庫之間的操作應(yīng)該是不影響的,但是考慮有一種情況,循環(huán)操作20個表,其中1和11是在一個庫里的,那么當(dāng)11出現(xiàn)異常時,是否會影響1庫的操作,
還有2~10的庫呢?

回答
編輯回答
離夢

只要在一個事務(wù)里哪怕是不同庫里的操作,都是一起成功或一起失敗。

為什么不自己試試呢?

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表故意不要創(chuàng)建c1列制造錯誤*/
select sleep(3);
commit;
2017年4月9日 14:34