postgres создать правило для вставки ничего не делать, если существует вставка в противном случае; ВЕРНУТЬСЯ id - PullRequest
0 голосов
/ 21 января 2020

В Postgres возможно ли СОЗДАТЬ ПРАВИЛО , которое ничего не делает, если существует какой-то ключ , но вставляет иначе. В любом случае он должен возвращать идентификатор вставленной / пропущенной строки.

Мне нужно правило, поэтому, пожалуйста, не давайте альтернатив. В настоящее время у меня есть приведенное ниже правило, которое ничего не делает для конфликтующих вставок, и я хочу выполнить вставку с предложением RETURNING id, но я получаю следующую ошибку

ERROR:  cannot perform INSERT RETURNING on relation "fco_assets"
HINT:  You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause.
********** Error **********

ERROR: cannot perform INSERT RETURNING on relation "fco_assets"
SQL state: 0A000
Hint: You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause.

Ниже мое текущее правило

CREATE OR REPLACE RULE table_ignore AS
ON INSERT TO table
WHERE (EXISTS ( SELECT 1
       FROM table
      WHERE table.key::text = new.key::text)) DO INSTEAD NOTHING;

Спасибо

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