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语句

原文地址:https://www.cnblogs.com/xbblogs/p/5345908.html