我试图在Postgres中从一个数据库复制整个表到另一个数据库。有什么建议吗?


当前回答

对于DBeaver工具用户,您可以“导出数据”到另一个数据库中的表中。

我一直面临的唯一错误是由于错误的postgres司机。

SQL Error [34000]: ERROR: portal "c_2" does not exist
    ERROR: Invalid protocol sequence 'P' while in PortalSuspended state.

这是一个关于如何导出数据的官方wiki: https://github.com/dbeaver/dbeaver/wiki/Data-transfer

其他回答

使用pg_dump转储表数据,然后使用psql恢复。

要在本地设置中将一个表从数据库a移动到数据库B,使用以下命令:

pg_dump -h localhost -U owner-name -p 5432 -C -t table-name database1 | psql -U owner-name -h localhost -p 5432 database2

提取表并将其直接输送到目标数据库:

pg_dump -t table_to_copy source_db | psql target_db

注意:如果其他数据库已经设置了表,你应该使用-a标志只导入数据,否则你可能会看到奇怪的错误,如“Out of memory”:

pg_dump -a -t table_to_copy source_db | psql target_db

如果你有两个远程服务器,那么你可以这样做:

pg_dump -U Username -h DatabaseEndPoint -a -t TableToCopy SourceDatabase | psql -h DatabaseEndPoint -p portNumber -U Username -W TargetDatabase

它会将源数据库中提到的表复制到目标数据库中同名的表,如果您已经有了模式。

对于DBeaver工具用户,您可以“导出数据”到另一个数据库中的表中。

我一直面临的唯一错误是由于错误的postgres司机。

SQL Error [34000]: ERROR: portal "c_2" does not exist
    ERROR: Invalid protocol sequence 'P' while in PortalSuspended state.

这是一个关于如何导出数据的官方wiki: https://github.com/dbeaver/dbeaver/wiki/Data-transfer