Как устранить ошибку Postgres 11: невозможно перенаправить вставленные кортежи в чужую таблицу

Я пробую разделение и пример FDW, описанный в https://pgdash.io/blog/postgres-11-sharding.html. После создания расширения 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 ответ

У вас, вероятно, есть версия PostgreSQL 10.

Вставка в таблицу с разделами, которые являются внешними таблицами, была введена в v11:

  • Разрешать INSERT, UPDATE, а также COPY в секционированных таблицах для правильной маршрутизации строк в сторонние разделы (Etsuro Fujita, Amit Langote)

    Это поддерживается postgres_fdw иностранные столы.

В любом случае, это сообщение об ошибке не появляется в базе кода v11.

Возможно, вы подключаетесь к серверу v10 с клиентом v11?

Другие вопросы по тегам