从未知数据库中选择表

时间:2013-07-19 16:00:11

标签: sql database

我有两个数据库(比如Old和In_Use),每个数据库都有不同的表。 In_Use数据库中的表在一段时间后移动到旧数据库,并在In_Use数据库中创建新表。

在表单中,我将TableName作为输入,并希望从所选表中选择项目。但是我不知道该表是哪个db(因为它随着时间的推移而变化)!

在另一篇文章中,我得到了以下内容

$Old = mysql_connect($hostname, $username, $password); 
$In_Use = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('Old', $Old);
mysql_select_db('In_Use', $In_Use);

此代码连接到两个数据库。

我的问题:有没有办法“虚拟加入”这两个dbs,以便我可以从Old或In_Use中的表中获取项目?

mysql_query('select * from TableName', $TheTwoDBs);

1 个答案:

答案 0 :(得分:1)

您可以查询INFORMATION_SCHEMA.TABLES表。 它包含不同数据库中所有系统/用户表和视图的信息(表名,模式,行号,排序规则,存储引擎等)。

这将返回表'stackoverflow_table'所在的数据库的名称(可能有多个数据库,可随意优化)

SELECT table_schema
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
AND TABLE_NAME='stackoverflow_table'

确定表的数据库后,请使用与所需数据库的适当连接。