【问题标题】:MySQL - Search All DatabasesMySQL - 搜索所有数据库
【发布时间】:2012-09-24 09:56:55
【问题描述】:

我有一堆数据库,都是相同的结构。我需要的是每个数据库的表“config”、“serial”列和数据库名称的值。

有没有办法自动遍历数据库并获取数据库名称及其 config.serial 的值?

干杯, 格温

【问题讨论】:

  • 我可以使用 SELECT SCHEMA_NAME AS Database FROM INFORMATION_SCHEMA.SCHEMATA 获取数据库名称,但据我所知。
  • 你在什么平台上做这个?根据您使用的是 Windows 还是 Unix(Linux 或 OS X),循环遍历所有数据库的确切机制会略有不同
  • Unix - 对不起,我应该想到提这个!
  • 感谢 WeaklyTyped,我已经看到了,但这超出了我目前的理解,我更有可能使用 select schema_name... 并让 Excel 为每条记录编写单独的 select 语句 :)

标签: mysql database


【解决方案1】:
SELECT <db>.<table>.config,<db>.<table>.serial,<otherdb>.<othertable>.config,<otherdb>.<othertable>.serial FROM <db>.<table>,<otherdb>.<othertable> WHERE ...

【讨论】:

  • 您好 h3rrmillier,谢谢您的建议,这不会是动态的吧?我必须填写数据库(超过 1000 个)?
  • 取一个变量 $database 来存储值。例如:$database = "database$i"。您将$i 作为变量,您可以使用循环获取值,如 database0,database1,... 等等。
  • 或者,由于您正在寻找具有某些称为 config 和 serial 的表的特定数据库,您可以这样做:SELECT TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_NAME LIKE '%config%' OR TABLE_NAME LIKE '%serial%'
  • ^ 将返回所有包含配置或序列表的数据库。您可以将结果放入循环中以构建您的查询
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 2011-05-19
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多