修改表名_面试官:如何批量修改mysql表字段、表、数据库字符集和排序规则

概述

目前数据库字符集统一用的utf8,由于项目需要,引进了表情,但是utf8mb5才支持表情字符,所以需统一修改数据库字符集,下面介绍批量修改数据库字符集的办法。

修正顺序是字段级别>表级别>库级别。


一、批量修改整个数据库字符集(字段级别)

统一将字符字符集变成utf8_general_ci

SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', COLUMN_NAME '字段', CHARACTER_SET_NAME '原字符集', COLLATION_NAME '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME, ' ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL' FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = 'lcpdb1'  AND CHARACTER_SET_NAME = 'utf8';

utf8是我demo的模糊匹配排序规则,这里需要替换为你数据库中需要替换的字段的排序规则,utf8mb4设置的是替换的字符集,utf8mb4_general_ci设置的是替换的排序规则,可以换为需要修正为什么标准

83227705af5bc083d2f64baf0f4247f4.png

二、批量修改整个数据库字符集(表级别)

1、创建批量修改语句

修改单个表的字符集的命令是:alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;

创建修改语句的命令是:

SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', TABLE_COLLATION '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' COLLATE=utf8mb4_general_ci;' ) '修正SQL' FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'lcpdb1'  AND TABLE_COLLATION = 'utf8_general_ci';
304b94bbb500e8bb4560c67cc96aed0e.png

将上面的修正SQL语句批量复制,然后全部执行。


三、批量修改多个数据库字符集(库级别)

1、找出MySQL实例中字符集不是utf8mb4的数据库

SELECT * FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>'utf8_general_ci';
e1660a1fad7b8e1538e97f11e34d26f5.png

2、批量修改

SELECT SCHEMA_NAME '数据库', DEFAULT_CHARACTER_SET_NAME '原字符集', DEFAULT_COLLATION_NAME '原排序规则', CONCAT( 'ALTER DATABASE ', SCHEMA_NAME, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '修正SQL' FROM information_schema.`SCHEMATA` WHERE DEFAULT_CHARACTER_SET_NAME='utf8';
a2a6250a29ab86e2789cb1fac7394c0f.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

1cdf5b79da4cceb75928932f5bf605ac.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux - nohup - 实现后台运行程序及查看(nohup与)

1. 后台执行 一般运行linux上的程序都是执行 .sh 文件&#xff08;./sh文件&#xff09;&#xff0c;那如果不影响当前CMD窗口的操作&#xff0c;需要后台运行怎么办呢&#xff1f; 这时就需要借助 nohup 和 & 命令来实现。 nohup java -server -Xms128M -Xmx512M -XX:M…

量化评价和质化评价举例_量化评价和质性评价异同点

量化评价和质性评价在理论上有分歧&#xff0c;但它们不是两种对立的方法&#xff0c;在课程评价中是非常必要和不可缺少的。它们的分歧能在课程评价实践中统一起来&#xff0c;互相弥补各自的缺点。1.量化评价的特点 量化评价的优点是逻辑性强&#xff0c;标准化和精确化程度…

Maven命令 install 和 package的区别

Maven命令 install 和 package的区别 Maven是目前十分流行的项目构建工具以及依赖解决工具&#xff0c;其提供的常用指令中有两个很容易引起使用者的疑惑&#xff0c; 那就是 install 和 package &#xff0c; 那么这两个命令到底有啥区别呢&#xff1f; Maven install 安装…

如何重启_消费市场按下重启键,企业该如何提前布局

2020广发卡携手企业和消费者&#xff0c;共同按下重启键&#xff0c;让我们放下包袱&#xff0c;轻松前行。当疫情结束后&#xff0c;你想做什么&#xff1f;也许是去见想见的人&#xff0c;和他一起去吃想吃的美食&#xff1b;也许是约上三五好友&#xff0c;或带着最亲的家人…

Linux中使用netstat命令的基本操作,排查端口号的占用情况

Linux中netstat命令详解 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具&#xff0c;它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据&#xff0c;一般用于检验本机各端口的网络连接情…

与context的关系_Android-Context

一.简介Context 翻译为上下文环境&#xff0c;是一个应用程序环境信息的接口。如果以 Android 系统角度来看可以理解为某一与操作系统的交互的具体场景&#xff0c;比如 Activity 的具体功能&#xff0c;Service 的后台运行等。如果以程序的角度看&#xff0c;Context 是一个抽…

Linux中sudo、su和su -命令的区别

Linux中sudo、su和su -命令的区别小结 我们知道&#xff0c;在Linux下对很多文件进行修改都需要有root&#xff08;管理员&#xff09;权限&#xff0c;比如对/ect/profile等文件的修改。下面这篇文章主要给大家总结介绍了关于Linux中sudo、su和su -命令的区别的相关资料&…

mybatis可以生成不重复的id吗_Mybatis面试题吐血总结

标签&#xff0c;逐一定义数据库列名和对象属性名之间的映射关系。第二种是使用 sql 列的别名功能&#xff0c;将列的别名书写为对象属性名。有了列名与属性名的映射关系后&#xff0c;mybatis 通过反射创建对象&#xff0c;同时使用反射给对象的属性逐一赋值并返回&#xff0c…

如何根据进程号去查端口号?

1.查出进程号 eg: ps -ef |grep conet- 2.根据当前进程号获得端口号&#xff1a; eg: netstat -anp |grep 4118 得到当前的端口是8761

Linux中如何查看某个端口是否被占用的方法

LINUX中如何查看某个端口是否被占用的方法 之前查询端口是否被占用一直搞不明白&#xff0c;现在总结下&#xff1a; 1.netstat -anp |grep 端口号 如下&#xff0c;我以3306为例&#xff0c;netstat -anp |grep 3306&#xff08;此处备注下&#xff0c;我是以普通用户操作&…

Maven构建分布式项目时子模块相互依赖打包技巧

场景 最近在学习使用Jenkins自动化部署分布式微服务的时候&#xff0c;需要将微服务打成Jar包发送到服务器制作成镜像供Jenkins拉取运行&#xff0c;了解到 spring-boot-maven-plugin 插件可以完成Maven工程的打包任务。 问题 直接在父pom文件引入如下插件将会导致Maven打的…

apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)

文章目录一、Apache httpd 多后缀解析漏洞漏洞原理漏洞复现漏洞修复二、Apache httpd 换行解析漏洞(CVE-2017-15715)漏洞原理漏洞复现漏洞修复三、Apache 目录遍历漏洞原理漏洞修复Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器&#xff0c;可以…

深入理解synchronized底层原理

文章目录前言一、synchronized的特性1.1 原子性1.2 可见性1.3 有序性1.4 可重入性二、synchronized的用法三、synchronized锁的实现3.1 同步方法3.2 同步代码块四、synchronized锁的底层实现五、JVM对synchronized的优化5.1 锁膨胀5.1.1 偏向锁5.1.2 轻量级锁5.1.3 重量级锁5.2…

redis发布订阅c接口_Redis 发布/订阅机制原理分析

序&#xff1a;使用订阅发布功能的时候想查一下客户端是如何接收消息的(客户端订阅了频道之后也会注册一个回调函数&#xff0c;服务端publish消息之后回调函数会获取到消息。这块没看到太多内容只有C的源码)&#xff0c;无意中查到这篇博客写的简单明了。转一下也做一个记录。…

理解java注解的实现原理

JAVA 注解的基本原理&#xff08;重点&#xff09; https://www.cnblogs.com/yangming1996/p/9295168.html 从以下4个方面来系统的学习一下java注解 什么是注解注解的用途注解使用演示注解的实现原理 1&#xff0c;什么是注解 注解也叫元数据&#xff0c;例如我们常见的Ove…

centos7重新加载服务的命令_CentOS7 从查看、启动、停止服务说起systemctl

执行命令“systemctl status 服务名.service”可查看服务的运行状态&#xff0c;其中服务名后的.service 可以省略&#xff0c;这是CenOS7以后采用systemd作为初始化进程后产生的变化。Systemctl是一个systemd工具&#xff0c;主要负责控制systemd系统和服务管理器。Systemd是一…

c#switch语句判断成绩_switch语句成绩等级例子

求 用C语言中switch语句编写学生成绩问题 #include void main() {double score; printf("请输入分数:\n"); scanf("%lf",&score); switch((int)(score/10))//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误, {case 10: ca…

一体化住户调查_曲麻莱县2020年城乡一体化住户调查表彰会暨年报部署会

为全面推进我县城乡一体化住户调查工作&#xff0c;总结经验、鼓励优秀&#xff0c;提高统计员和辅助调查员的工作积极性&#xff0c;提高账本数据质量&#xff0c;11月25日下午&#xff0c;县统计局组织召开2020年全县城乡一体化住户调查工作表彰会暨年报部署会。全县6个镇的统…

电力系统继电保护第二版张保会_电力系统继电保护试题

一、填空题(每小题1分&#xff0c;共20分)1.电气元件配置两套保护&#xff0c;一套保护不动作时另一套保护动作于跳闸&#xff0c;称为_近后备_保护。2.电流继电器的_返回_电流与动作电流的比值称为继电器的返回系数。3.反应电流增大而瞬时动作的保护称为__无时限电流速断保护_…

Linux中shell脚本详解

文章目录1、第一个脚本程序&#xff1a;2、shell获取字符串长度&#xff1a;3、shell变量&#xff1a;4、**引用shell变量**&#xff1a;5、shell变量的赋值、修改、删除&#xff1a;5、shell特殊变量&#xff1a;6、shell中字符串的拼接&#xff1a;**7、字符串的截取**8、she…