MySql批量修改表排序规则
2022/7/5 2:20:20
本文主要是介绍MySql批量修改表排序规则,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先是使用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:二进制
这篇关于MySql批量修改表排序规则的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南