从不同的数据库postgresql复制表

时间:2017-02-06 12:32:45

标签: sql database postgresql

我有来自不同数据库的表,我想创建一个数据仓库数据库,其中包含来自不同数据库的不同表的表副本。我希望仓库中的数据每天与其他表中的数据同步。我正在使用postgresql

我尝试使用psql执行此操作:

  

pg_dump -t table_to_copy source_db | psql target_db

然而它没有工作,因为它一直说明像表不存在的错误。 当我将整个dabatase不仅仅倾倒到一个表时,这一切都有效,但是我想要同步数据,我想从不同的数据库而不是整个数据库中复制表。

我该怎么做? 谢谢!

2 个答案:

答案 0 :(得分:1)

可能你需要FDW - 外部数据包装器。您可以在本地数据库的不同模式中为不同的外部数据库创建外部表。本地查询可访问的所有表。对于存储快照,您可以使用仅INSERT INTO local_table_YYYY_MM SELECT * FROM remote_table;的本地表。

答案 1 :(得分:0)

<强> 1

$var = echo $row["fontsize"];
....
....
imagettftext($this->fond,$var,0,200,400,$textcolor,$font,$item_text);

(正确检查表格名称,它表示不存在,表格不存在)

<强> 2

pg_dump只允许转储选择表:

(从数据库'databasename'转储'tablename'到pg_dumps二进制自定义格式的文件'output.dump')

您可以恢复pg_restore

 pg_dump -t <table name> <source DB> | psql -d <target DB>

如果表本身已存在于目标数据库中,则只能通过添加pg_dump -Fc -f output.dump -t tablename databasename 标志来导入行。

<强> DBLINK

您无法执行SQL Server等跨数据库查询,PostgreSQL不支持此功能。 PostgreSQL的DbLink扩展,用于将一个数据库连接到另一个数据库。您必须安装和配置DbLink才能执行跨数据库查询。

以下是在PostgreSQL中执行跨数据库查询的分步脚本和示例。请访问此post: