MySQL 批量修改库、表、列的排序规则

1.表字段修复

SELECT
    TABLE_SCHEMA '数据库',
    TABLE_NAME '表',
    COLUMN_NAME '字段',
    CHARACTER_SET_NAME '原字符集',
    COLLATION_NAME '原排序规则',
    CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME, ' ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL'
FROM
    information_schema.COLUMNS
WHERE
    COLLATION_NAME RLIKE 'utf8';

utf8 是我demo的模糊匹配排序规则,这里需要替换为你数据库中需要替换的字段的排序规则,

utf8mb4设置的是替换的字符集,

utf8mb4_general_ci设置的是替换的排序规则,

下面是运行结果:

MySQL 批量修改库、表、列的排序规则

把修正SQL 复制出来直接运行即可,

ALTER TABLE scm_users.users MODIFY COLUMN password varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE scm_warehouse.contact MODIFY COLUMN address varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE scm_warehouse.contact MODIFY COLUMN country varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE scm_warehouse.contact MODIFY COLUMN postal_code varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;......

2.表修复

SELECT
    TABLE_SCHEMA '数据库',
    TABLE_NAME '表',
    TABLE_COLLATION '原排序规则',
    CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' COLLATE=utf8mb4_general_ci;' ) '修正SQL'
FROM
    information_schema.TABLES
WHERE
    TABLE_COLLATION RLIKE 'utf8';

表修复只需要设置排序规则,字符集会自动设置到正确的标准,

下面是SQL跑出来的样例。

MySQL 批量修改库、表、列的排序规则

把修正SQL 复制出来直接运行即可。

3.数据库修复

#修改数据库
SELECT
    SCHEMA_NAME '数据库',
    DEFAULT_CHARACTER_SET_NAME '原字符集',
    DEFAULT_COLLATION_NAME '原排序规则',
    CONCAT( 'ALTER DATABASE ', SCHEMA_NAME, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL'
FROM
    information_schema.SCHEMATA
WHERE
    DEFAULT_CHARACTER_SET_NAME RLIKE 'utf8';

下面是SQL跑出来的样例。

MySQL 批量修改库、表、列的排序规则

Original: https://www.cnblogs.com/JimmyThomas/p/16348977.html
Author: JimmyThomas
Title: MySQL 批量修改库、表、列的排序规则

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582504/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot中通过AOP整合日志文件

    1.SpringBoot中通过AOP整合日志文件 1. 导入相关的依赖 org.springframework.boot spring-boot-starter org.sprin…

    Linux 2023年6月14日
    0102
  • Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置。 SVN是subversion的缩写,是一个开放源代码的版本控制系统,…

    Linux 2023年6月7日
    0100
  • MySQL — 索引

    索引(Index)是高效获取数据的数据结构,就像书的目录,提高检索数据的效率。 优点:提高数据检索效率,降低数据库的 IO 成本;通过索引列对数据进行排序,降低数据排序的成本,降低…

    Linux 2023年6月8日
    075
  • MultipartFile上传文件异步处理时的java.io.FileNotFoundException

    参考:https://javajgs.com/archives/26157 1-1 需求 前端上传Word文档,后端将接收到的Word文档①上传到文件服务器②将Word转为Pdf。…

    Linux 2023年6月8日
    093
  • 错误域控降级导致解析问题

    近两天在给分部安装辅助域控的时候,总是安装不成功,或者安装时成功了但是无法复制主域或者其他域控的信息,同步失败,还有就是它一直没有网。 解决方案 经过排查发现域名dns解析不对,经…

    Linux 2023年6月8日
    0122
  • redis

    常用操作 LLEN KEY_NAME # 返回列表的&#x95…

    Linux 2023年5月28日
    0104
  • 代码中的软件工程复习

    编写高质量代码的基本方法 通过控制结构简化代码 通过数据结构简化代码 一定要有错误处理 注意性能优先的代价 拒绝修修补补不断重构代码 性能优先策略带来的隐藏代价 软件工程师的人力成…

    Linux 2023年6月8日
    0101
  • powershell 编写的tui界面脚本《电壳别名宝》

    中文名: 《电壳别名宝》 English name: 《Power Alias》 powershell 编写的tui界面脚本。 用途:保存容易记住的别名(支持中文),保存linux…

    Linux 2023年5月27日
    0146
  • 就业班第一周作业

    是由 Patrick Volkerding 开发的 [GNU/Linux]发行版,于 1993 年创建,最初基于 Softlanding Linux System。典型代表系统是S…

    Linux 2023年6月13日
    084
  • docker Redis 安裝路徑

    /usr/local/etc posted @2022-01-14 17:35 刘大飞 阅读(20 ) 评论() 编辑 Original: https://www.cnblogs….

    Linux 2023年5月28日
    0115
  • 关于多个 Cookie 的分隔符这件事

    对于 Cookie 的处理上,我最近遇到一个问题,那就是如何分割 Cookie 的内容。有人说是使用逗号分割,有人说是使用分号分割,究竟用哪个才是对的?其实这个答案是需要分为两个过…

    Linux 2023年6月6日
    091
  • 路由黑洞和黑洞路由

    路由黑洞: 路由黑洞一般是在网络边界做汇总回程路由的时候产生的一种不太愿意出现的现象,就是汇总的时候有时会有一些网段并不在内网中存在,但是又包含在汇总后的网段中,如果在这个汇总的边…

    Linux 2023年6月14日
    0113
  • 课间游戏志:斗荧光笔与扒撸咔嚓

    课间游戏志:斗荧光笔与扒撸咔嚓 写这篇博客,主要是想记录两个课间游戏,一个是我于小学四年级时发明的斗荧光笔,一个是初中时班上几个变态发明的扒撸咔嚓,自从这两个游戏被发明以后,我们班…

    Linux 2023年6月6日
    0105
  • windows 使用挂载盘提供FTP服务

    环境说明: NFS服务器:centos7.0 IP:192.168.18.10 FTP服务器:windows server 2008 IP:192.168.18.41 准备工作: …

    Linux 2023年6月8日
    0172
  • VSCODE 配置远程调试环境

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/f1KZOlL92ojes-r2l9rlCw 我的…

    Linux 2023年6月6日
    0149
  • 斐波那契数列前1000项

    斐波那契数列前1000项 {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177…

    Linux 2023年6月6日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球