简体   繁体   English

在MySQL事务中混合MyISAM和innoDB表

[英]Mixing MyISAM and innoDB Table in MySQL transaction

In following code: 在以下代码中:

BEGIN
     DECLARE exit handler for sqlexception, not found
     BEGIN
        ROLLBACK;                  
     END;
     START TRANSACTION;
          INSERT INTO InnoDBTable
          VALUES(...);
          -- some code here          
          INSERT INTO MyISAMTable
          VALUES(...);
          -- some other code
     COMMIT;
END;

I want to know that if sqlexception occurs in transaction, what will happen to table having MyISAM engine as I know MyISAM don't support transactions. 我想知道,如果在事务中发生sqlexception,那么具有MyISAM引擎的表将发生什么,因为我知道MyISAM不支持事务。 Will changes in both tables will be rollbacked? 是否会回退两个表中的更改? or changes in InnoDBTable will be rollbacked and changes in MyISAM table will be saved? 或InnoDBTable中的更改将被回滚并保存MyISAM表中的更改?

MyISAM does not support transaction. MyISAM不支持交易。 So if you mix myISAM and InnoDB in a transaction , then on rollback myISAM changes will not be reverted. 因此,如果将myISAM和InnoDB混合在一个事务中,则回滚时myISAM的更改将不会恢复。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM