Mysql (三)|字符集批量修改所有表和字段

1,112 阅读1分钟

文章已参与[新人创作礼]活动,一起开启掘金创作之路.

微信公众号:秀基宝。如有问题,请后台留言,反正我也不会听。

前言

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出来执行即可

本人开发的玩基金小工具

个人博客:
名称:纯洁的麦田
链接:[http://www.idearyou.cn/](https://www.idearyou.cn/ "http://www.idearyou.cn/")\
描述:争取哪一天做上架构师
公众号:纯洁的麦田

网址:[www.idearyou.cn]
谷歌插件搜:秀基宝
小程序:秀基宝
复制代码
复制代码

后语

如果本文对你哪怕有一丁点帮助,请帮忙点好看。你的好看是我坚持写作的动力。 另外,关注免费学习。