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

Mysql 合并来自不同数据库的不同表并保留数据库标识符?,mysql,database,Mysql,Database,我陷入了一个棘手的境地。我将举一个简单的例子来强调我的问题 假设我有两个数据库;DBa包含表Ta1和Ta2,DBb包含表Tb1和Tb2。所有这些表都具有相同的结构 我想将Ta1和Tb1的内容合并到名为T1的联合表中,并将Ta2和Tb2合并到名为T2的联合表中。此外,我需要一种方法来标记T1和T2的任何内容或行都来自数据库DBa或DBb 一种解决方法是在联合表T1和T2中创建一个额外的列,使用DB ID,并在这些列的行中填入它们来自的数据库名称,即DBa或DBb(视情况而定)。我现在能想到的是手动

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

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

我想将Ta1和Tb1的内容合并到名为T1的联合表中,并将Ta2和Tb2合并到名为T2的联合表中。此外,我需要一种方法来标记T1和T2的任何内容或行都来自数据库DBa或DBb

一种解决方法是在联合表T1和T2中创建一个额外的列,使用DB ID,并在这些列的行中填入它们来自的数据库名称,即DBa或DBb(视情况而定)。我现在能想到的是手动方式,但我相信这是由于我对SQL的知识有限

我非常感谢你对解决这个问题的想法


另外,所有数据库和表都在同一台MySQL服务器上。

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


如果您不希望从其他源引入数据,另一种选择是为每个源数据库(例如DbAID、DbBID等)提供单独的可空列,并将原始ID放入这些列中。虽然这减少了查询的工作量,但从I/O的角度来看,如果出现另一个源代码,扩展它就不那么便宜了。

是的,我的意思是填写某种DB ID,而不是DB名称本身。这个想法似乎很有趣,我在每个DB中的原始表中创建了一个DBID列,用一些标识符填充它们,然后使用UNION?跨DBs合并各种表?我尽量避免在填充这些DBID时所涉及的手动工作。