1

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

在一个表单中,我将 TableName 作为输入,并希望从选定的表中选择项目。但我不知道该表在哪个数据库中(因为它会随着时间而变化)!

从另一篇文章我得到以下信息

$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);

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

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

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

1 回答 1

1

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

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

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

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

于 2013-07-19T16:09:40.180 回答