推荐阅读

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 批量修改数据库的字符集和排序规则相关推荐

  1. mysql选择排序规则_关于mysql创建数据库中字符集和排序规则的选择

    1:字符集: 一般 主要选择两种: 1:utf8   (看unicode编码区从1 - 126就属于传统utf8区,),一般都够用,除非需要存储特殊字符 2:utf8mb4(utf8mb4兼容utf8 ...

  2. navicat如何配置链接mysql并且新建数据库设置字符集和排列规则

    首先我们大家必须先安装好navicat软件,安装完成之后我们点击windows窗口可以看到有Navicat应用图标. 然后我们将Navicat设置桌面快捷键,设置完成之后我们在桌面上就可以看到有nav ...

  3. mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...

    MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列. 最初,服务器字符集和排序规则取决于启动mysqld时使用的选项.可以使用 --character-set-serv ...

  4. mysql默认字符集和排序_MySQL字符集和排序规则

    MySQL在创建数据库是,需要设置数据库的字符集和排序规则,如图所示: 我觉得这里有必要解释下字符集和排序规则这两个概念. 字符集 说到字符集,需要先提下字符.字符集和字符编码这几个词的含义. 字符( ...

  5. mysql concat 不同字符集_字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8?...

    字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8? 如何将整个MySQL数据库字符集转换为UTF-8并将整理转换为UTF-8? 17个解决方案 591 votes 使用utf8 ...

  6. mysql 中文字符排序规则_mysql中字符集和排序规则说明

    数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...

  7. MySQL字符集和排序规则详解

    本篇博客主要记录mysql当中关于创建数据库时候选择:字符集.排序规则等相关知识.通过示例直观的看出其真正作用. 目录 1.前言 2.mysql字符集 2.排序规则 2.1.排序规则作用 2.2.排序 ...

  8. MySQL中支持的字符集和排序规则

    一.MySQL字符集概念 1.1 MySQL中的utf8和utf8mb4 我们常说 utf8 字符集表示一个字符需要使用1-4个字节,但是我们常用的一些字符使用1-3个字节就可以表示了.而在 MySQ ...

  9. mysql中一次字符集和排序规则引起的sql查询报错

    先看sql o.city_name AS '城市',o.city_code AS '城市编码',o.comp_name AS '公司',o.comp_code AS '分公司编码',b.brand_n ...

最新文章

  1. 第一章 Mysql 简介及安装和配置
  2. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
  3. Linux chmod给文件加执行X权限
  4. Python自省(反射)指南
  5. 算法图解学习笔记01:二分查找大O表示法
  6. RDB 文件的优势和劣势
  7. 停止使用p = 0.05
  8. ajax 回调数据 刷新table_Ajax gt;gt;gt; 001
  9. 使用jdk1.8 新特性stream实现多级分类
  10. 简单的STM32汇编程序
  11. 转linux时间格式,Linux命令之date - 显示、修改系统日期时间[转]
  12. Hexo博客搭建以及主题使用
  13. ctf工具整理-持续更新
  14. 《公主连结》交互设计师:如何用TV画手法制作2D技能动画
  15. 空间点过程与随机测度(一):从数星星说起
  16. 全新电影社交观影,满足影迷移动巨幕与移动3D体验
  17. nyoj 一笔画问题
  18. 「ReactNaitve」对hooks最佳实践的探索
  19. Java: 获取MAC网络地址
  20. jdk下载与安装教程win10_jdk下载与安装教程win7

热门文章

  1. 《程序设计技术》第六章例程
  2. JSK-23 计数和数数【数列】
  3. CCF NOI1042 发奖学金
  4. HDU3790 最短路径问题【Dijkstra算法】
  5. 从氨基酸到大分子(蛋白质、核酸)
  6. 网络基石 —— ADSL
  7. 数学常用公式及规律、结论(二)
  8. 计算机网络 第七版 谢,计算机网络-谢仁-第7版-01章.pptx
  9. python朗读文本_python文本操作—读、写
  10. python读取两行字符串_python - 如何为两行之间的行分配值,并在数据帧的列中使用特定字符串? - SO中文参考 - www.soinside.com...