使用查询将数据从一个db的表复制到另一个db的表中(两个表具有相同的结构)

时间:2010-09-17 09:29:37

标签: sql postgresql

我在同一架构中有两个数据库。我的数据库是Postgres。我想将我的第一个数据库的任何表(即产品)的数据复制到第二个数据库的同一个表中。

是否可以使用查询?

3 个答案:

答案 0 :(得分:3)

不能作为单个SQL命令(至少没有dblink),但最简单的方法可能是在两个psql之间使用管道 - 在两端使用COPY,一个以CSV格式发送数据另一个接收它。

答案 1 :(得分:0)

insert into db1.table1 select * from db2.table2

答案 2 :(得分:0)

在vanilla PostgreSQL安装中不可能。

如果您能够安装contrib模块,请使用dblink

INSERT
INTO    product
SELECT  *
FROM    dblink
        (
        'dbname=sourcedb',
        '
        SELECT  *
        FROM    product
        '
        ) AS p (id INT, column1 INT, column2 TEXT, …)

这应该在目标数据库中运行。