我有一个生产应用程序,我们有Mysql 5.6,在同一个实例上有两个数据库(dbA和dbB)。
我们有一些处理,数据在两个数据库上都会更新,我们会进行交易。所以要么两者都发生了变化,要么他们都没有。使用Mysql时,事情的确如此。
我们有一些分层表,这就是为什么CTE变得有吸引力。由于Mysql到目前为止还没有支持CTE,我们想到了迁移到MariaDB 10.2。所以我们这样做了,突然之间,跨数据库的事务已停止工作。
更新发生在dbA上,但如果dbB中的更新存在问题,则dbA上的更改不会回滚!
请注意,我没有更改任何后端代码(对php使用相同的mysqli驱动程序)。
任何智慧的珍珠都会大有帮助。