使用新主键有选择地转储和插入新数据库

时间:2013-09-10 08:33:11

标签: mysql database import mysqldump

我在服务器上运行了一个数据库。我还有一个在新服务器上运行大约一个月的数据库,该服务器具有基于旧服务器的数据。由于这两者都是在过去一个月中运行的,因此它们的数据并不相同。

我们希望将选择性数据从旧数据库中的两个表移动到新数据库。这是我想要移动的选择,一个月的数据:

select * from table1 left join table2 on table1.keyID = table2.keyID 
where table2.updated between '2013-08-01' and '2013-08-31';

根据我的理解,我可能需要自己转储每个表。但是,当将此数据插入新数据库时,我需要为这些条目提供新的keyID(这是自动生成的)。如何保持这两个表之间的连接呢?

1 个答案:

答案 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 字段为自动增量字段,否则此解决方案无法正常工作