如何解决Postgres 11错误:无法将插入的元组路由到外部表

时间:2019-01-18 09:27:05

标签: postgresql database-partitioning foreign-data-wrapper

我正在尝试https://pgdash.io/blog/postgres-11-sharding.html中解释的分区和FDW示例。创建FDW扩展和外部分区表(temperatures_2016)后,当我尝试将2016年数据插入主表温度时会抛出

  

错误:无法将插入的元组路由到外部表。

我该如何解决?

-在其他服务器Box2上

CREATE TABLE temperatures_2016 (
    at      date,
    city    text,
    mintemp integer,
    maxtemp integer
);

-在我的服务器上

CREATE FOREIGN TABLE temperatures_2016
    PARTITION OF temperatures
    FOR VALUES FROM ('2016-01-01') TO ('2017-01-01')
    SERVER box2;

INSERT INTO temperatures (at, city, mintemp, maxtemp) 
VALUES ('2016-08-23', 'HongKong', 29, 40);

我希望将行插入到外部分区表中,而不是

  

错误:无法将插入的元组路由到外部表SQL状态:   0A000

1 个答案:

答案 0 :(得分:1)

您可能拥有PostgreSQL版本10。

插入具有外部表分区的表中的introduced in v11

  
      
  • 允许分区表上的INSERTUPDATECOPY将行正确地路由到外部分区(藤田悦郎,阿米特·兰格特)

         

    postgres_fdw外部表支持此功能。

  •   

无论如何,该错误消息不会出现在v11代码库中。

也许您正在使用v11客户端连接到v10服务器?