我的问题是我正在使用 PostgreSQL 数据库并想导入一个vfm
从其他数据库命名的表,比如B
. 但是在我当前的数据库中有一个同名的表(A
)。我的查询中出现错误,说关系已经存在。
我想知道是否有办法将外部模式导入到具有其他名称的表中,或者(最好)我们是否可以直接查询另一个数据库而无需将外部模式导入 PostgreSQL?
我一直无法为此找到完美的解决方案。
我的问题是我正在使用 PostgreSQL 数据库并想导入一个vfm
从其他数据库命名的表,比如B
. 但是在我当前的数据库中有一个同名的表(A
)。我的查询中出现错误,说关系已经存在。
我想知道是否有办法将外部模式导入到具有其他名称的表中,或者(最好)我们是否可以直接查询另一个数据库而无需将外部模式导入 PostgreSQL?
我一直无法为此找到完美的解决方案。
我假设您正在使用postgres_fdw;对于其他外国数据包装器,情况略有不同。
无需使用 . 即可轻松定义外部表IMPORT FOREIGN SCHEMA
。
如果模式名是myschema
,表名是vfm
,外部服务器是serv
,你可以
CREATE FOREIGN TABLE myschema.vfm_2(col1, type1, ...)
SERVER serv
OPTIONS (schema_name 'myschema', table_name 'vfm');
另一种选择是将表加载到不同的模式,例如
CREATE SCHEMA foreign_data;
IMPORT FOREIGN SCHEMA public LIMIT TO (customers) FROM SERVER serv INTO foreign_data;