數據庫表中部分是MyISAM引擎,部分是InnoDB。由於MyISAM不支持事務,所以需要全部修改為InnoDB引擎。
(下面例子SQL語句中 ecsoft 為數據庫名)
通過以下查詢可以看到數據庫中表的引擎。
select * from information_schema.tables as t where table_schema = 'ecsoft' and table_type='base table' and engine = 'MyISAM';
批量修改分2部操作:
1. 生成批量修改的sql語句。
USE `ecsoft`; SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ' ,TABLE_NAME ,' ENGINE=InnoDB; ') SEPARATOR '' ) FROM information_schema.TABLES AS t WHERE TABLE_SCHEMA = 'ecsoft' AND TABLE_TYPE = 'BASE TABLE' and engine = 'MyISAM' ;
1中執行完生成結果語句如下:
2. 執行1中生成的SQL語句即可。