前言
hello,大家好,今天遇到一个棘手的问题,那就是我的测试环境和开发环境数据库字符集部分不一样。这个时候肯定要替换成一致的,但是你如果一个个替换,那么那将大错特错。今天就教你一个批量修改。
解决
- 更改表编码(字符集)和表中所有字段的编码(字符集):
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
如果一个数据库有很多表要修改,可以使用如下办法:
- 查询某个数据库所有表名的语句:
SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_SCHEMA = 'DATABASE_NAME';
得到所有的表名,我们可以把表名拼接到上面更改表编码(字符集)和表中所有字段的编码(字符集)的语句中去
综合
SELECT
CONCAT(
'ALTER TABLE ',
TABLE_NAME,
' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
)
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'DATABASE_NAME';
这个时候就得出sql语句,你直接cope出来执行即可
作者:秀总
网站:秀基宝
网址:xiu.idearyou.cn