我正在尝试 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 中引入了插入到具有外部表分区的表中:
允许分区表上的
INSERT
、UPDATE
和COPY
将行正确路由到外部分区(藤田越郎、阿米特·朗格特)这由
postgres_fdw
外部表支持。
无论如何,该错误消息不会出现在 v11 代码库中。
也许您正在使用 v11 客户端连接到 v10 服务器?