在数据库之间移动信息

时间:2010-03-16 22:19:46

标签: database postgresql

我在Postgres上,并且在同一台机器上有两个数据库,我想将一些数据从数据库源移动到数据库Dest。

Database Source:
Table User has a primary key
Table Comments has a primary key
Table UserComments is a join table with two foreign keys for User and Comments

Dest看起来就像Source in structure,但已经在User和Comments表中包含了需要保留的信息。

我想我可能只需几步即可完成。

步骤1,我会使用Postgres Copy命令将Source转储到文件中。

步骤2,在Dest中我会向User和Comments添加一个临时的second_key列,以及一个新的SecondUserComments连接表。

步骤3,我会再次使用Copy将转储的文件导入Dest,并将键输入到second_key列中。

步骤4,我会根据SecondUserComments的内容向Dest中的UserComments添加行,这次只使用真正的主键。这可以用SQL命令完成,还是需要脚本?

步骤5,删除SecondUserComments表并删除second_key列。

这听起来像是最好的方法吗,还是有更好的方式让我俯视?

1 个答案:

答案 0 :(得分:1)

您可以使用dblink从一个数据库连接到另一个数据库,只需插入所需的记录和列。然后你不必更改数据模型,也不必做一个pg_dump,只需要一些好的旧SQL。