前言

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