0

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

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

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

据我了解,我可能需要自己转储每张桌子。但是,当将此数据插入新数据库时,我需要为这些条目提供新的 keyID(这是自动生成的)。如何在保持这两个表之间的连接的同时做到这一点?

4

1 回答 1

0

旧服务器中转储table1table2并在数据库名称 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字段之外的所有字段。KeyID号码将由数据库自动生成

我假设KeyID字段是自动增量字段,否则此解决方案将不起作用

于 2013-09-15T16:05:00.813 回答