我试图在Postgres中从一个数据库复制整个表到另一个数据库。有什么建议吗?
当前回答
必须使用DbLink将一个表数据复制到不同数据库中的另一个表中。 您必须安装和配置DbLink扩展才能执行跨数据库查询。
我已经在这个话题上创建了详细的帖子。 请访问此链接
其他回答
对于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
首先安装dblink
然后,你可以这样做:
INSERT INTO t2 select * from
dblink('host=1.2.3.4
user=*****
password=******
dbname=D1', 'select * t1') tt(
id int,
col_1 character varying,
col_2 character varying,
col_3 int,
col_4 varchar
);
如果你想将数据从一个服务器数据库复制到另一个服务器数据库,那么你必须创建dblink连接两个数据库,否则你可以导出CSV中的表数据,并导入其他数据库表中的数据,表字段应该与主表相同。
要在本地设置中将一个表从数据库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
作为一种替代方法,您还可以使用外部数据包装器扩展将远程表公开为本地表。然后,您可以通过从远程数据库中的表进行选择,将数据插入到您的表中。唯一的缺点是速度不是很快。
推荐文章
- 查询JSON类型内的数组元素
- 获得PostgreSQL数据库中当前连接数的正确查询
- 纬度和经度的数据类型是什么?
- 如何在PostgreSQL中临时禁用触发器?
- 输入文件似乎是一个文本格式转储。请使用psql
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何添加列,如果不存在PostgreSQL?
- 如何在Postgres中获得两个字段的MIN() ?
- 截断Postgres数据库中的所有表
- 如何连接列在Postgres选择?
- 将varchar字段的类型更改为整数:"不能自动转换为整数类型"
- PostgreSQL可以索引数组列吗?
- PostgreSQL:角色不允许登录