首页 > 解决方案 > 使用 Postgresql 外部数据包装器更新表

问题描述

  1. 我创建了一个名为t_userinto的外部数据包装表mySchema

    IMPORT FOREIGN SCHEMA public LIMIT TO (t_user)
       FROM SERVER myServer INTO mySchema;
    
  2. myServer一边添加了一些列t_user,但是外部表没有相应地更新。

  3. 我试图删除外表t_user,但它被我的视图和物化视图使用t_user,所以删除失败。

关于如何更新此表的任何想法?

标签: postgresqlddlforeign-data-wrapper

解决方案


如您所见,外部表定义不会在基础表更改时更改。

如果您所做的只是添加一列,则可以使用ALTER FOREIGN TABLE将相应的列添加到外表。即使视图依赖于外部表,这也应该有效。

例如,如果列的类型为text,您可以执行以下操作:

ALTER FOREIGN TABLE t_user ADD COLUMN my_column text;

推荐阅读