1

2 つのデータベース (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);

このコードは 2 つのデータベースに接続します。

私の質問: Old または In_Use のテーブルからアイテムを取得できるように、この 2 つのデータベースを「仮想的に結合」する方法はありますか?

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 に答える