首页 > 数据库 >MySQL:批量修改排序规则

MySQL:批量修改排序规则

时间:2023-03-28 22:11:57浏览次数:38  
标签:ci 批量 utf8mb4 CHARACTER general MySQL TABLE 排序 ALTER

生成修改表排序规则的SQL语句

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,
              ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') '修正SQL'
from information_schema.tables
where TABLE_SCHEMA = '数据库名'
  and TABLE_COLLATION = 'utf8mb4_0900_ai_ci';

生成的 SQL 语句如下:

ALTER TABLE 数据库名.tb_batch CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE 数据库名.tb_batch_scale CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

复制执行即可;

 

生成修改字段排序规则的SQL语句

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 1=1
    and TABLE_SCHEMA = '数据库名' #要修改的数据库名称
    and DATA_TYPE = 'varchar'
    and COLLATION_NAME='utf8mb4_0900_ai_ci'


生成的 SQL 语句如下:

ALTER TABLE `tb_categories` MODIFY `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标识';
ALTER TABLE `tb_categories` MODIFY `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称';

复制执行即可;

标签:ci,批量,utf8mb4,CHARACTER,general,MySQL,TABLE,排序,ALTER
From: https://www.cnblogs.com/lbnnbs/p/17266941.html

相关文章

  • ByteHouse MaterializedMySQL 增强优化
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群前言社区版ClickHouse推出了MaterializedMySQL数据库引擎,用于将MySQL中的表映射......
  • ES定制化排序的骚操作
    一.通过邻尽查询提升相关度1.配合使用match_query和match_phrease2.match_phrease匹配条件比match_query复杂二.直接通过排序存在哪些问题1.将权重转化为排序的先后顺......
  • Leetcode81. 搜索旋转排序数组 II
    classSolution{public:boolcheck(vector<int>&nums,inttarget,intl,intr)//[l,r]区间查找target{while(l<r){intmid=(......
  • MySQL 5 从安装到同步
    安装部分创建用户和组由于采用直接初始化方式所以用户不会自动创建需要为mysql手动创建用户与组;创建组groupaddmongodbtest创建用户useraddmongodbtest-gmongod......
  • mysql 查看表的大小方法
    mysql查看表的大小方法:1.查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024,2))as'数据......
  • MySQL学习笔记-存储引擎
    存储引擎一.MySQL体系结构MySQLServer连接层:连接的处理、认证授权、安全方案、检查是否超过最大连接数等。服务层:SQL接口、解析器、查询优化器、缓存引擎层:引擎......
  • 练习——简易的冒泡排序
    packagecom.q1u.array;importjava.util.Arrays;//冒泡排序//1.比较数组中两个相邻的元素,如果第一个数大于第二个,交换两者位置//2.每一次比较,都会产生一个最大或者......
  • 确定比赛名次 HDU - 1285 (拓扑排序)
    题意:有N个比赛队(1≤N≤500),编号依次为1,2,3,...,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比......
  • 老是忘记的字典排序
    amount_total=0forsubscription_type,product_infoinbill_group_dict.items():consume_group_doc_lst["subscription_type"]=subscription_typeconsume_gr......
  • MySQL事务还没提交,Canal就能读到消息了?
    【问题描述】开发有天碰到一个很奇怪的问题,他的场景是这样子的:通过Canal来订阅MySQL的binlog,当捕获到有数据变化时,回到数据库,反查该数据的明细,然后做进一步处理。有一......