合并来自不同数据库的不同表并保留数据库标识符?

时间:2011-06-24 06:35:29

标签: mysql database

我陷入了棘手的境地。我将举一个简单的例子来强调我的问题。

假设我有两个数据库; DBa 包含 Ta1 Ta2 表格, DBb 表格 Tb1 TB2 即可。所有这些表都具有相同的结构。

我想在名为 T1 的联合表中合并 Ta1 的内容与 Tb1 ,并合并 Ta2 T2 的联合表中使用 Tb2 。此外,我需要一种方法来标记 T1 T2 的任何内容(或行)来自数据库 DBa DBb 即可。

可以尝试在关联表中创建一个额外的列, T1 T2 ,使用数据库ID并使用数据库填充此列的行来自哪里的名称(即 DBa DBb 视具体情况而定)。我现在能想到的是一种手动方式,但我相信这是由于我对SQL的了解有限。

我非常感谢您对解决此问题的看法。

P.S。所有数据库和表都在同一个MySQL服务器上。

1 个答案:

答案 0 :(得分:0)

拥有SourceDbID和OriginalID列似乎是一个合理的解决方案 - 我绝对不会将数据库名称放入每一行 - 更好的是拥有一个带有数据库名称和ID的SourceDb表,并引用它。

如果您不希望从其他来源引入数据,则另一个选项是为每个源数据库分别设置NULLable列,例如: DbAID,DbBID等,并将原始ID放入这些列中。虽然这样查询的工作量较少,但是如果另外一个来源出现的话,延伸并不便宜(从I / O的角度来看)。