我的问题是我正在使用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;