批量修改表数据库类型
场景
SpringbootJap 自动创建表时默认是MyIsam
解决办法
1.配置文件中yml增加
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
2.数据库如果以创建完修改 xxx_db代表数据库
USE `xxx_db`;
SELECT GROUP_CONCAT(CONCAT( 'ALTER TABLE ' ,TABLE_NAME ,' ENGINE=InnoDB; ') SEPARATOR '' )
FROM information_schema.TABLES AS t
WHERE TABLE_SCHEMA = 'xxx_db'
AND TABLE_TYPE = 'BASE TABLE'
and engine = 'MyISAM'
;
如果表数据量比较多的话,另一种办法处理
select TABLE_NAME from information_schema.tables as t where table_schema = 'xxx_db' and table_type='base table' and engine = 'MyISAM';
用批量的工具(sublime)
把表名修改成
ALTER TABLE xxx_table ENGINE=InnoDB;
在数据库中直接用上边生成的sql
数据量不大,很迅速