这就是我定义外部表的方式:
CREATE FOREIGN TABLE ftbl_employee (
id UUID,
name VARCHAR,
)
SERVER company_registry_dbserver
OPTIONS (schema_name 'company', table_name 'company_employee');
它成功地创建了外部表。但是,当我列出外部表时,它默认为public模式。请参见foreign_table_schema列:
> select * from information_schema.foreign_tables;
foreign_table_catalog | |||||
---|---|---|---|---|---|
沙箱 | 公共 | ftbl_employe沙箱 | company_register_dbserver |
列information_schema.foreign_tables
保存本地存储外部表的架构,而不是目标数据库中表的架构。因此,如果本地不存在此外来表,就无法在模式company
中创建它!您需要本地运行。。
CREATE SCHEMA company;
或者与CCD_ 3模式中的外来表共存。请记住,一张外国桌子只不过是一张"桌子";网关";到位于不同数据库/服务器中的表。如果您想了解有关外部表的更多详细信息,例如name
或schema
,请查看视图pg_foreign_table
:
SELECT relname, ftoptions
FROM pg_foreign_table
JOIN pg_class ON ftrelid = oid;