пятница, 1 июня 2012 г.

PostgreSQL-аналог MySQL-функции LAST_INSERT_ID()

В постгресе нет полей AUTO_INCREMENT, но есть псевдо-тип данных serial, который использует последовательности для задания новых значений поля. Для получения значения, использованного для задания значения такого поля при последней  INSERT-операции можно воспользоваться функциями для работы с последовательностями:
SELECT CURRVAL(<имя_последовательности>);
или
SELECT LASTVAL();
Последний вариант не требует задания имени последовательности, используемой для генерации новых значений поля, а просто возвращает значение последней использованной последовательности (точнее значение, возвращенное последней операцией nextval), что вполне подходит при использовании сразу после проведения INSERT`а.

1 комментарий: