MySQL中的information_schema

Posted 追风逐月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中的information_schema相关的知识,希望对你有一定的参考价值。

information_schema 数据库是mysql自带的,可看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等

SCHEMATA表:提供了关于数据库的信息。

TABLES表:给出了关于数据库中的表的信息。

COLUMNS表:给出了表中的列信息。

STATISTICS表:给出了关于表索引的信息。

 

配合concat()函数可以达到如虎添翼的效果;

SELECT CONCAT(‘update ‘,table_schema,".",table_name," set schoolId=149;") FROM `information_schema`.columns WHERE table_schema=‘idsp_jn14‘ AND column_name=‘schoolId‘; --查出数据库某个表包含字段是schoolId,并拼接成SQL语句

 

SELECT concat(‘use ‘,SCHEMA_NAME,‘; ALTER TABLE `frm_requestlog` ADD INDEX `requestLog_createTime` (`CreatedTime`); ALTER TABLE `frm_requestlog` ADD INDEX `requestLog_userId` (`UserId`);‘) FROM `SCHEMATA` WHERE `SCHEMA_NAME` LIKE ‘idsp%‘ and SCHEMA_NAME!=‘idsp_dblocator‘  LIMIT 0,1000; --这是一条拼接成生成索引的SQL语句

以上是关于MySQL中的information_schema的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中的information_schema.COLUMNS 是啥意思呢

查询mysql最后更新时间

mysql中information_schema.tables字段说明

mysql中information_schema.schemata字段说明

mysql元数据库使用information_schema.tables查询数据库和数据表信息

MySQL查询以获取列名?