MySQL批量修改数据表和数据表中所有字段的字符集

Published on 2024-09-19 17:22 in 分类: 随笔 with 狂盗一枝梅
分类: 随笔

单个表修改方法:

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

如果一个数据库有很多表要修改,可以使用如下办法:

查询某个数据库所有表名的语句:

SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_SCHEMA = '数据库名';

得到所有的表名后,我们可以把表名拼接到上面更改表编码(字符集)和表中所有字段的编码(字符集)的语句中去,得到如下语句:

SELECT
	CONCAT(
		'ALTER TABLE ',
		TABLE_NAME,
		' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
	)
FROM
	information_schema.`TABLES`
WHERE
	TABLE_SCHEMA = '数据库名字';

把语句执行得到的结果集复制出来就是批量更新的语句,在数据库中执行即可

image-20240919172110445

转载自:MySQL批量修改数据表和数据表中所有字段的字符集


#mysql