В 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;
Спасибо