barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

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

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

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

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