Mysql批量修改字符集

1、查看当前数据库字符集

show VARIABLES like ‘character%’;

2、修改数据库字符集(修改完数据库字符集,需要重启mysql数据库)

alter database 数据库名 character set utf8mb4;

3、修改表存储引擎及字符集

ALTER TABLE 表名 ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

生成修改所有表存储引擎及字符集语句

SELECT TABLE_NAME,CONCAT(‘ALTER TABLE  ‘,TABLE_NAME,’ ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;’) executeSQL FROM information_schema.SCHEMATA a,information_schema.TABLES b
WHERE a.SCHEMA_NAME=b.TABLE_SCHEMA
AND a.DEFAULT_COLLATION_NAME!=b.TABLE_COLLATION
AND b.TABLE_SCHEMA=’数据库名’

我是用Navicat运行后直接复制的,复制后在允许即可

Mysql批量修改字符集

4、修改列字符集

ALTER TABLE 表名 CHANGE 列名 VARCHAR( 100 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

生成所有列修改字符集语句:

select b.table_name,b.column_name,b.character_set_name,b.collation_name
,CONCAT(‘ALTER TABLE ‘,b.table_name,’ MODIFY ‘,b.column_name,’ ‘,b.DATA_TYPE,'(‘,b.CHARACTER_MAXIMUM_LENGTH,’) ‘,CASE WHEN b.COLUMN_DEFAULT IS NULL THEN ”  ELSE CONCAT(‘DEFAULT \”,b.COLUMN_DEFAULT,‘\”) END,’ COMMENT \”,b.COLUMN_COMMENT,’\’;’) executeSQL
from information_schema.TABLES a,information_schema.COLUMNS b where  b.character_set_name IS NOT NULL and a.TABLE_SCHEMA=b.TABLE_SCHEMA AND a.TABLE_NAME=b.TABLE_NAME
AND a.TABLE_COLLATION!=b.COLLATION_NAME
and a.TABLE_SCHEMA=’数据库名’

原创文章,作者:wwh,如若转载,请注明出处:https://www.wuwenhui.cn/4742.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
wwhwwh
上一篇 2020-04-16
下一篇 2020-06-23

相关推荐

  • 完全卸载memcached的方法(CentOS)

    前阵子给服务器装了个memcached,4G的内存,想给网站提提速,实际上不但没有明显效果,反倒耗费内存,看着碍眼,于是想卸载,网上各种搜索+自己实践,搞出一个傻瓜方案来: 1、首…

    2015-12-07
    16.6K0
  • Serv-U本地服务器密码错误

    服务器上的serv_u 点击本地服务器,输入了正确的密码但提示“本地服务器密码错误”的解决方法。 这类原因一般是 Serv-U程序错误,或密码被修改了,修复方法: 这个是Serv-…

    2013-04-21
    6.5K0

发表回复

登录后才能评论

评论列表(1条)

  • 免费资源
    免费资源 2020-05-15 16:52

    努力学习中

联系我们

在线咨询:点击这里给我发消息

站长邮箱:admin@wuwenhui.cn
工作时间:周一至周五,8:30-17:30,节假日休息

微信
本站支持QQ一键注册登录,所有资源下载均在文章底部~