ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySql批量修改表排序规则

2022-07-04 11:01:46  阅读:169  来源: 互联网

标签:ci 批量 utf8mb4 sql MySql table 排序 schema


首先是使用sql生成目标sql语句

修改表排序规则

SELECT
    CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' COLLATE=utf8mb4_general_ci;' ) 'sql' 
FROM
    information_schema.`TABLES` 
WHERE
    table_schema = 'target_db'

 

修改表字段排序规则

SELECT
    CONCAT(
        'alter table `',
        table_name,
        '` modify `',
        column_name,
        '` ',
        data_type,
        '(',
        character_maximum_length,
        ') character set utf8mb4 collate utf8mb4_general_ci',
        ( CASE WHEN is_nullable = 'no' THEN ' not null' ELSE '' END ),
        ( CASE WHEN IFNULL( column_comment, '' ) = '' THEN '' ELSE CONCAT ( ' comment \'', column_comment, '\'' ) END ),
        ';' 
) AS `sql` 
FROM
    information_schema.`COLUMNS` 
WHERE
    table_schema = 'target_db'

将结果复制出来执行即可

注意: 如果表有外键会导致执行失败, 这里可以先删除外键修改完再重建外键关系

 

其他资料:

utf8mb4_0900_ai_ci在MySQL5中是没有的 

 

 

 

排序规则命名意义

排序规则名字格式: 字符集_排序规则_后缀

如: utf8_general_ci

后缀意义:

  • _ci:不区分大小写,Case-insensitive的缩写
  • _cs:区分大小写,Case-sensitive的缩写
  • _ai:不区分轻重音,Accent-insensitive的缩写
  • _as:区分重音,Accent-sensitive的缩写
  • _bin:二进制

 

标签:ci,批量,utf8mb4,sql,MySql,table,排序,schema
来源: https://www.cnblogs.com/masahiro/p/16442171.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有