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



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

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

我该如何解决这个问题?

-- 在其他服务器盒2上

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

你可能有PostgreSQL版本10。

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

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

    这由postgres_fdw外部表支持。

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

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

相关内容

  • 没有找到相关文章

最新更新