【MySQL】 批量更改库,表,字段的字符集
库一级的更改:
-- 单个库字符集更改
ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'; -- 批量修改库的字符集
SELECT CONCAT('ALTER DATABASE `', `SCHEMA_NAME`, '` CHARACTER SET \'utf8\' COLLATE \'utf8_general_ci\'; ') AS `批量改库字符集SQL`
FROM information_schema.`SCHEMATA`
WHERE `SCHEMA_NAME` NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys') -- 排除系统库,可以再添加自己需要排除的库
-- `SCHEMA_NAME` IN('SASAD', 'ASDASD', ...) -- 或者指定哪些库要改
表一级的更改:
-- 批量改表的字符集
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` CHARACTER SET = utf8, COLLATE = utf8_general_ci;')
FROM information_schema.`TABLES`
WHERE `TABLE_SCHEMA` = 'ymcd_aisw' -- 指定单库
-- `TABLE_SCHEMA` IN ('x111', 'xaaaq') -- 指定多库
字段一级的更改:
-- 批量改字段
-- 主键字符字段不涉及索引问题,联合主键也是一样 SELECT CONCAT(
-- 指定的库和表名
'ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` ',
-- 指定的字段和数据类型
'MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE,
-- 指定的字符集和对应的排序规则
' CHARACTER SET utf8 COLLATE utf8_general_ci ',
-- 是否非空和默认值的组合
(CASE
WHEN IS_NULLABLE = 'NO' AND COLUMN_DEFAULT IS NULL THEN 'NOT NULL '
WHEN IS_NULLABLE = 'NO' AND COLUMN_DEFAULT IS NOT NULL THEN CONCAT('NOT NULL DEFAULT "', COLUMN_DEFAULT, '" ')
WHEN IS_NULLABLE = 'YES' AND COLUMN_DEFAULT IS NULL THEN 'NULL DEFAULT NULL '
WHEN IS_NULLABLE = 'YES' AND COLUMN_DEFAULT IS NOT NULL THEN CONCAT('NULL DEFAULT "', COLUMN_DEFAULT, '" ')
END),
-- 保留原始注释信息
'COMMENT "', COLUMN_COMMENT, '";'
)
FROM information_schema.`COLUMNS`
WHERE
CHARACTER_SET_NAME = 'utf8mb4' -- 根据原字符集来筛选
AND `TABLE_SCHEMA` = 'ymcd_aisw' -- 指定单库
-- `TABLE_SCHEMA` IN('') -- 指定多库
【MySQL】 批量更改库,表,字段的字符集的更多相关文章
- MySQL数据库的库表迁移
最近在研究MySQL数据库的库表迁移问题,主要分为两种情况,一种情况是迁移数据库的表的全部字段,另一种是迁移数据库的表的部分字段.前一种情况是直接使用mysqldump命令来实现,后一种情况则是采用数 ...
- 批量更改数据库表架构(生成sql后直接执行!)
批量更改数据库表架构(生成sql后直接执行!) use my_test; --当前数据库 ), ), ), @NewSql VARCHAR(max), @Index INT; SET @SchemaO ...
- Mysql数据库 的库表简易操作
一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8; charset uft8 可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...
- MySQL查看某库表大小及锁表情况
查询所有数据库占用磁盘空间大小的SQL语句: 语句如下: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB ...
- Oracle批量更改所有表的字段取值_类型_原字段名
CREATE PROCEDURE 存储过程名称 is cursor c_tab is select * from user_tab_columns t r_tab user_tab_columns%r ...
- MySQL数据库的库表基本操作
一.库操作 1.创建业务数据库 DDL 数据库命名规则:区分大小写.唯一性.不能使用关键字如 create select.不能单独使用数字 语法:CREATE DATABASE 数据库名; CREAT ...
- mysql批量生成修改表和列注释语句
当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 ...
- mysql 修改 添加 删除 表字段
添加表的字段 alter table 表名 add 字段名 字段的类型 例子: alter table table1 add transactor varchar(10) n ...
- mysql: 查看某库表大小
查询所有数据库占用磁盘空间大小的SQL语句: 语句如下 1 2 3 4 5 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/102 ...
- mysql查看某库表大小
查询所有数据库占用磁盘空间大小的SQL语句: 语句如下 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB' ...
随机推荐
- 【技巧】JS代码这么写,前端小姐姐都会爱上你
前言 缘由 JS代码小技巧,教你如何守株待妹 你想听的故事: 顶着『前端小王子』的称号,却无法施展自己的才能. 想当年本狗赤手空拳打入前端阵地,就是想通过技术的制高点来带动前端妹子.奈何时不待我,前端 ...
- (八十八)c#Winform自定义控件-转子
官网 http://www.hzhcontrols.com/ 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kw ...
- kettle从入门到精通 第三十七课 kettle 全量同步(数据量小)
1.下图是一些常见的数据同步业务场景: 实时数据:对实时性要求很高,延迟在毫秒范围内.常见的有kafka/rabbitmq等消息中间件,mysql binlog日志,oracle归档日志等. 离线数据 ...
- 使用 OpenTelemetry 构建可观测性 04 - 收集器
在之前的博文中,我们讨论了如何使用 SDK 和链路追踪生产者来导出进程中的遥测数据.尽管有多种类型的导出器可供选择,但其中一个常见的目标是将数据导出到 OpenTelemetry Collector. ...
- koishi常用插件推荐
今天给大家做一个常用插件的推荐 以下将插件归为几个大类,按类型推荐 1. 日常相关 点歌 插件名:koishi-plugin-music-downloadvoice-api 功能介绍: 语音点歌 - ...
- springmvc组件说明
DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度. HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应 ...
- [flask]统一API响应格式
前言 在设计API返回内容时,通常需要与前端约定好API返回响应体内容的格式.这样方便前端进行数据反序列化时相应的解析处理,也方便其它服务调用.不同公司有不同的响应内容规范要求,这里以常见的JSON响 ...
- windows系统安装或使用inspect.exe工具
确认是否安装? 结合工具everything,进行搜索 选择对应操作系统的版本,右键->选择打开路径,进到inspect.exe的安装路径,双击打开软件 软件开启后,就会自动开始抓取目前软件界面 ...
- zabbix数据库
1. 安装MySQL 5.6 操作系统为CentOS7 X64 MySQL文件下载地址 http://dev.mysql.com/downloads/repo/yum/ 卸载已存在文件 rpm -qa ...
- springboot+security自定义登录-1-基础-自定义用户和登录界面
为何学习spring security? 理由如下: 1)虽然可以不用,但难免部分客户又要求 2)某种程度上,security还是不错的,譬如csrf,oauth等等,省了一些功夫. 3)虽然spri ...