我可以为外表更改SERVER吗?

时间:2016-05-23 10:37:08

标签: postgresql postgres-fdw

根据DOC我无法做到这一点。但是完全重新创建表格迫使我做大量工作而不是简单:

ALTER FOREIGN TABLE table_name ALTER SERVER new_server_name;

3 个答案:

答案 0 :(得分:5)

列出您的外国数据服务器并注意它:

select oid, * from pg_foreign_server 

找到你的外国人表:

select oid, * from pg_class where relkind = 'f'

然后修改系统目录pg_foreign_table,如:

update pg_foreign_table set ftserver = 11573931 where ftserver = 11573932 -- and ftrelid = YOUR_OID_RELID_FROM_PG_CLASS

答案 1 :(得分:0)

请勿使用这种方式更改服务器,因为它不会更新依赖表pg_depend并在以后引起许多问题。

答案 2 :(得分:0)

在 postgres 12 中,为了更改用于外部数据库包装器的服务器 IP 地址,此命令运行良好

alter  server  YOUR_SERVER_NAME  options (set  host 'XX.XXX.XX.X');