1

我正在尝试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

4

1 回答 1

1

您可能拥有 PostgreSQL 版本 10。

在 v11中引入了插入到具有外部表分区的表中:

  • 允许分区表上的INSERTUPDATECOPY正确地将行路由到外部分区(Etsuro Fujita,Amit Langote)

    这是由postgres_fdw外部表支持的。

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

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

于 2019-01-18T09:57:21.910 回答