MySQL 批量修改数据库的字符集和排序规则
推荐阅读
Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506
Helm3(K8S 资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html
本文原文链接:https://blog.csdn.net/xzk9381/article/details/114872488,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。
一、处理外键约束
在处理大量数据时,可能会遇到外键约束的问题导致数据无法修改成功,所以在执行修改指令之前,可以先设置忽略外键约束,修改完成后再打开。命令如下:
SET FOREIGN_KEY_CHECKS=0;-- Insert your other SQL Queries here...SET FOREIGN_KEY_CHECKS=1;
二、修改数据库的字符集和排序
修改某一个库的字符集和排序可以使用如下命令:
ALTER DATABASE <yourDB> CHARACTER SET <charset> COLLATE <collation>
例如修改 wiki 数据库字符集为 utf8,排序为 utf8_bin:
ALTER DATABASE wiki CHARACTER SET utf8 COLLATE utf8_bin;
三、修改表的字符集和排序
修改表的字符集可以使用如下命令:
SELECT CONCAT('ALTER TABLE `', table_name, '` CHARACTER SET <charset> COLLATE <collation>;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = '<yourDB>'
AND
(C.CHARACTER_SET_NAME != '<charset>'ORC.COLLATION_NAME != '<collation>'
);
例如修改 wiki 数据库中的表字符集为 utf8,排序为 utf8_bin:
SELECT CONCAT('ALTER TABLE `', table_name, '` CHARACTER SET utf8 COLLATE utf8_bin;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = 'wiki'
AND
(C.CHARACTER_SET_NAME != 'utf8'ORC.COLLATION_NAME != 'utf8_bin'
);
上面的命令执行完成后,会输出一些修改表的语句,将这些语句复制后在数据库中执行,即可完成对表的修改。
四、修改字段的字符集和排序
如果数据类型是 varchar,使用如下命令修改字段的字符集和排序:
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET <charset> COLLATE <collation>', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = '<yourDB>'
AND DATA_TYPE = 'varchar'
AND
(CHARACTER_SET_NAME != '<charset>'ORCOLLATION_NAME != '<collation>'
);
如果数据类型是非 varchar,使用如下命令修改字段的字符集和排序:
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, ' CHARACTER SET <charset> COLLATE <collation>', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = '<yourDB>'
AND DATA_TYPE != 'varchar'
AND
(CHARACTER_SET_NAME != '<charset>'ORCOLLATION_NAME != '<collation>'
);
上面的 sql 执行完成后会输出修改修改字段的 sql,将这些 sql 复制到 mysql 中执行即可完成对字段的修改。
本文原文链接:https://blog.csdn.net/xzk9381/article/details/114872488,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。
MySQL 批量修改数据库的字符集和排序规则相关推荐
- mysql选择排序规则_关于mysql创建数据库中字符集和排序规则的选择
1:字符集: 一般 主要选择两种: 1:utf8 (看unicode编码区从1 - 126就属于传统utf8区,),一般都够用,除非需要存储特殊字符 2:utf8mb4(utf8mb4兼容utf8 ...
- navicat如何配置链接mysql并且新建数据库设置字符集和排列规则
首先我们大家必须先安装好navicat软件,安装完成之后我们点击windows窗口可以看到有Navicat应用图标. 然后我们将Navicat设置桌面快捷键,设置完成之后我们在桌面上就可以看到有nav ...
- mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...
MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列. 最初,服务器字符集和排序规则取决于启动mysqld时使用的选项.可以使用 --character-set-serv ...
- mysql默认字符集和排序_MySQL字符集和排序规则
MySQL在创建数据库是,需要设置数据库的字符集和排序规则,如图所示: 我觉得这里有必要解释下字符集和排序规则这两个概念. 字符集 说到字符集,需要先提下字符.字符集和字符编码这几个词的含义. 字符( ...
- mysql concat 不同字符集_字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8?...
字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8? 如何将整个MySQL数据库字符集转换为UTF-8并将整理转换为UTF-8? 17个解决方案 591 votes 使用utf8 ...
- mysql 中文字符排序规则_mysql中字符集和排序规则说明
数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...
- MySQL字符集和排序规则详解
本篇博客主要记录mysql当中关于创建数据库时候选择:字符集.排序规则等相关知识.通过示例直观的看出其真正作用. 目录 1.前言 2.mysql字符集 2.排序规则 2.1.排序规则作用 2.2.排序 ...
- MySQL中支持的字符集和排序规则
一.MySQL字符集概念 1.1 MySQL中的utf8和utf8mb4 我们常说 utf8 字符集表示一个字符需要使用1-4个字节,但是我们常用的一些字符使用1-3个字节就可以表示了.而在 MySQ ...
- mysql中一次字符集和排序规则引起的sql查询报错
先看sql o.city_name AS '城市',o.city_code AS '城市编码',o.comp_name AS '公司',o.comp_code AS '分公司编码',b.brand_n ...
最新文章
- 第一章 Mysql 简介及安装和配置
- R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
- Linux chmod给文件加执行X权限
- Python自省(反射)指南
- 算法图解学习笔记01:二分查找大O表示法
- RDB 文件的优势和劣势
- 停止使用p = 0.05
- ajax 回调数据 刷新table_Ajax gt;gt;gt; 001
- 使用jdk1.8 新特性stream实现多级分类
- 简单的STM32汇编程序
- 转linux时间格式,Linux命令之date - 显示、修改系统日期时间[转]
- Hexo博客搭建以及主题使用
- ctf工具整理-持续更新
- 《公主连结》交互设计师:如何用TV画手法制作2D技能动画
- 空间点过程与随机测度(一):从数星星说起
- 全新电影社交观影,满足影迷移动巨幕与移动3D体验
- nyoj 一笔画问题
- 「ReactNaitve」对hooks最佳实践的探索
- Java: 获取MAC网络地址
- jdk下载与安装教程win10_jdk下载与安装教程win7
热门文章
- 《程序设计技术》第六章例程
- JSK-23 计数和数数【数列】
- CCF NOI1042 发奖学金
- HDU3790 最短路径问题【Dijkstra算法】
- 从氨基酸到大分子(蛋白质、核酸)
- 网络基石 —— ADSL
- 数学常用公式及规律、结论(二)
- 计算机网络 第七版 谢,计算机网络-谢仁-第7版-01章.pptx
- python朗读文本_python文本操作—读、写
- python读取两行字符串_python - 如何为两行之间的行分配值,并在数据帧的列中使用特定字符串? - SO中文参考 - www.soinside.com...