关于MySQL的information_schema库简单介绍及实际应用
本文简介
写本文主要是围绕下面几点进行的。
1、information_schema数据库到底是做什么用的?
2、执行alter table 表名 modify column 字段名 类型 这个sql时,mysql发生了什么?
3、修改字段基本的sql记录【修改字段长度,修改字段名称,修改字段类型,默认值,是否空,字段说明,还有什么?】
正文
最近系统报一个错,字段设置为varchar(20),实际传入参数长度大于20,然后需要更改系统中所有库下的关于相关字段的长度,数据表有两百多个,假如一个个的查表找字段,我估计不能按时完成任务。怎么办?自己琢磨着难道mysql就没有记录所有的库的信息这个功能吗?一查果然有,就是这个库information_schema,给赞!
其实在自己安装mysql数据库的时候,会经常见到这个库,到底这个库是做什么用的,就没有再进一步了解过,今天遇到了,好好看一下。


其实对于上面的很多表中表示的是什么意思,目前都还不是很了解的,后续查资料,尽量补充一下。
这次我使用的表就是这个库下的COLUMNS表,这个表记录了详细的表中各字段的所属及类型,提供信息足够我使用,下面就是处理的sql。
处理sql:
select a.TABLE_SCHEMA as 库名,a.TABLE_NAME as 表名,a.COLUMN_NAME as 列名,
case when a.COLUMN_DEFAULT = '0' then '0' else '\'\'' end as 默认值,
case when a.IS_NULLABLE = 'NO' then 'not null' else 'null' end as 是否允许空,
a.COLUMN_TYPE as 列类型 ,a.COLUMN_COMMENT as 说明
from `COLUMNS` a
where
(a.COLUMN_NAME like '%mount%' or a.COLUMN_NAME like '%price%' or a.COLUMN_NAME like '%fee%')
and a.DATA_TYPE = 'varchar' and a.CHARACTER_MAXIMUM_LENGTH < 50
and a.TABLE_SCHEMA in(
'db_acc_v2',
'db_buz_v2',
'db_inv_v2',
'db_nc_v2',
'db_pay_v2',
'db_pro_v2',
'db_settle_v2'); # 拼接 修改sql
select CONCAT('alter table ',a.TABLE_SCHEMA,'.',a.TABLE_NAME,' modify column '
,a.COLUMN_NAME,' VARCHAR(50) ',case when a.is_nullable='NO' then 'not null' else 'null' end
,' DEFAULT ',case when a.COLUMN_DEFAULT is null then ' null ' else CONCAT('\'',a.COLUMN_DEFAULT,'\'') end
,' COMMENT ',case when a.COLUMN_COMMENT is null then ' null ' else CONCAT('\'',a.COLUMN_COMMENT,'\'') end,';')
from `COLUMNS` a
where (a.COLUMN_NAME like '%mount%' or a.COLUMN_NAME like '%price%' or a.COLUMN_NAME like '%fee%')
and a.DATA_TYPE = 'varchar' and a.CHARACTER_MAXIMUM_LENGTH < 50
and a.TABLE_SCHEMA in(
'db_acc_v2',
'db_buz_v2',
'db_inv_v2',
'db_nc_v2',
'db_pay_v2',
'db_pro_v2',
'db_settle_v2')
order by a.TABLE_SCHEMA,a.TABLE_NAME,a.COLUMN_NAME;
后记:
书中自有黄金屋,书中自有颜如玉呀,多读书,多实践,多写好代码!
关于MySQL的information_schema库简单介绍及实际应用的更多相关文章
- Python常用的库简单介绍一下
Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...
- professional cuda c programming--CUDA库简单介绍
CUDA Libraries简单介绍 上图是CUDA 库的位置.本文简要介绍cuSPARSE.cuBLAS.cuFFT和cuRAND.之后会介绍OpenACC. cuSPARSE线性代数库,主要针 ...
- MySQL的information_schema库
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式. 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名.列的数据类型,或访问权限.有些时候用于表述该信 ...
- PCL(Point Cloud Library)的第三方库简单介绍(boost,eigen,flann,vtk,qhull)
PCL由于融合了大量的第三方开源库,导致学习成本升高~在学习之前我们最好还是了解一下这些库都是干嘛的,以便有的放矢.在之后更好的使用 boost: C++的标准库的备用版,擅长从数学库到智能指针,从模 ...
- js工具库简单介绍
javascript mvc的解决方案: angularjs, backbone,underscore, 有空的时候了解一下. 移动端的几个需要了解一下,jq mobile, zepto.knocko ...
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
- day39——SQL语句简单介绍、库、表、记录、安装mysql简单命令
day39 SQL语句简单介绍 库(增删改查) 查看数据库 show databases; 查看其中一个库 show create database db1; 创建数据库 create databas ...
- MySQL sys Schema 简单介绍-2
之前在<MySQL sys Schema 简单介绍-1>中简单的介绍了,sys Schema库中的表.那么这些表都可以查询些什么信息呢?接下来本文将做下介绍. 1. 表的情况 1.1 统计 ...
- MySQL sys Schema 简单介绍-1
参考文档: MySQL- 5.7 sys schema笔记 MySQL 5.7新特性:SYS库详解 MySQL Performance Schema&sys Schema介绍 内存分配统计视图 ...
随机推荐
- HDU 1018.Big Number-Stirling(斯特林)公式 取N阶乘近似值
最近一堆题目要补,一直咸鱼,补了一堆水题都没必要写题解.备忘一下这个公式. Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估 ...
- ASP.NET MVC Identity 使用自己的SQL Server数据库
之前在网上看到的一篇后来找不到了,现在自己记录一下. 1.在web.config中添加一个数据库连接. <add name="dataContext" connectionS ...
- [原创][SW]TortoiseSVN创建本地版本控制
1. 简介 TortoiseSVN是一个Windows平台下的Subversion用户端软件,以Windows shell extension的方式写成.它是自由软件,以GNU通用公共许可证发布.(f ...
- 2017-10-29-afternoon-清北模拟赛
T1 洗澡 贪心:将未匹配的右括号花费1变为左括号,最有多余的左括号有一半变成右括号 #include <cstring> #include <cstdio> ); int n ...
- Spring IOC知识java反射
[1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http: ...
- 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
spring版本:4.3.13 ActiveMq版本:5.15 ======================================================== spring整合act ...
- 在win7上安装visual c++ 2008 redistributable 发生错误error 1935
方案一.原来服务"Windows Modules Installer"被禁用了, 启用该服务后, 问题就解决了. 方案二. 1.点开始——在运行框里输入regedit,按回车键 ...
- Ural 2018The Debut Album(DP)
题目地址:Ural 2018 简单DP.用滚动数组. 代码例如以下: #include <iostream> #include <cstdio> #include <st ...
- C结构体之位域(位段)(转)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...
- 使用excel进行数据挖掘(5)---- 应用场景分析
使用excel进行数据挖掘(5)---- 应用场景分析 在配置环境后,能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/ar ...