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中information_schema.tables字段说明
mysql中information_schema.schemata字段说明