近日需要迁移公司的数据库 数据库表数量非常多 而且新程序用的是大写表名!!
因为之前是windows系统 表名大小写不敏感
迁移目的是Liunx 表名大小写敏感
所以需要把表名全部改成大写
然后需要将字符集utf8 转成 utf8mb4
一个一个alter太烦了 转出sql全局替换也麻烦
于是找了聪明的方法
用语句生成更新语句
如下更改表名
SELECT CONCAT('RENAME TABLE ',TABLE_NAME,' TO ',UPPER(TABLE_NAME),';') from information_schema.`TABLES` WHERE TABLE_SCHEMA = '数据库名';
生成如上图 复制 语句执行就ok啦
同理修改字符集
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') from information_schema.`TABLES` WHERE TABLE_SCHEMA = 'DATABASE_NAME';