Как устранить ошибку Postgres 11: невозможно перенаправить вставленные кортежи в чужую таблицу - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь использовать пример разделения и 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 Ответ

0 голосов
/ 18 января 2019

Вероятно, у вас PostgreSQL версии 10.

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...