【问题标题】:May I alter SERVER for foreign table?我可以更改外部表的 SERVER 吗?
【发布时间】:2016-05-23 10:37:07
【问题描述】:

根据DOC 我做不到。但是完全重新创建表迫使我做大量的工作而不是简单的:

ALTER FOREIGN TABLE table_name ALTER SERVER new_server_name;

【问题讨论】:

    标签: postgresql postgres-fdw


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      不要使用这种方式更改服务器,因为它不会更新依赖表 pg_depend 并导致以后出现很多问题。

      【讨论】:

        【解决方案3】:

        在 postgres 12 中,此命令可以正常工作,以更改用于外部数据库包装器的服务器 IP 地址

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-12
          • 2016-09-16
          • 2015-01-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多