Я использую PostgreSQL 8.2 (это должна быть минимальная версия, поддерживающая RETURNING), точно 8.2.19 на GNU/Linux. Я попытался использовать предложение return на автоматически вставленном столбце, который также ограничен как первичный ключ. Ввод новой строки правильно завершен, но возвращаемый результат пуст (проверен с помощью запроса executer в pgAdmin). Я попробовал неявное вложение, а также задал значение DEFAULT для столбца первичного ключа.Как использовать предложение RETURNING в PostgreSQL?
В колонке я попытался вернуться определяется как
al_id integer NOT NULL DEFAULT nextval(('"allarmi_al_id_seq"'::text)::regclass)
и запрос вставки, как
INSERT INTO alarms (al_id, al_descr)
VALUES (DEFAULT, 'description')
RETURNING al_id;
allarmi_al_id_seq
, очевидно, (?) Последовательность и определяется как
CREATE SEQUENCE allarmi_al_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 34564230
CACHE 1;
Что случилось?
похоже, что он работает в 8.3.20 - http://sqlfiddle.com/#!10/309b9/1. Должно быть какое-то исправление между этими двумя версиями :) –
Пробовал ли вы это, не объясняя al_id? http://sqlfiddle.com/#!10/309b9/4 –
Да, я имел в виду именно этот стиль, говорящий «неявная вставка» –