我在服务器上运行了一个数据库。我还有一个在新服务器上运行大约一个月的数据库,该服务器具有基于旧服务器的数据。由于这两者都是在过去一个月中运行的,因此它们的数据并不相同。
我们希望将选择性数据从旧数据库中的两个表移动到新数据库。这是我想要移动的选择,一个月的数据:
select * from table1 left join table2 on table1.keyID = table2.keyID
where table2.updated between '2013-08-01' and '2013-08-31';
根据我的理解,我可能需要自己转储每个表。但是,当将此数据插入新数据库时,我需要为这些条目提供新的keyID(这是自动生成的)。如何保持这两个表之间的连接呢?
答案 0 :(得分:0)
转储 table1 &来自旧服务器的 table2 ,并将其还原到数据库名称 oldDB
下的新服务器中我假设新服务器中的数据库名称为 newdb
Insert into newdb.table1 (Field1,Field2,field3)
select Field1,Field2,field3
from olddb.table1
left join olddb.table2
on (olddb.table1.keyID = olddb.table2.keyID)
Where olddb.table2.updated between '2013-08-01' and '2013-08-31';
请注意,除 KeyID 字段外,您必须在select语句中指定所有字段。 KeyID 号码将由数据库自动生成
我假设 KeyID 字段为自动增量字段,否则此解决方案无法正常工作