получение последнего ИД в рамках транзакции

Приветствую, коллеги!
жизнь вынудила перейти на слоника ...
имеем
1. INSERT что-то, куда-то , атоматом проставляется автоинкрементное заначение ИД
2 INSERT что-то еще, полученное в прошлом инсерте автоинкрементное ИД куда-то еще.
грубо говоря, ф-ия PHP pg_trans, которая получает массив запросов, после чего исполняет их все в рамках транзакции.
таким образом на момент создания запроса 2 первый еще не выполнен и соответственно, ИД не известен.
проверять второй запрос на наличие некоего ИД и заменять его на свежеполученный после первого ... как-то некрасиво.
Вопрос:
есть ли какая-нибудь "внутренняя переменная", которая хранит в себе последний выданный ИД и которую я могу использовать во втором запросе.
Пожалуйста, подскажите, уважаемые, как должен выглядеть второй запрос?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

собственно

собственно говоря, поле

"ID" SERIAL

не что иное, как
"ID" INTEGER DEFAULT NEXTVAL('"foo_ID_seq"'::regclass)

т.е. значения автоинкрементного поля берутся не "откуда-то" а из сиквенса (то бишь последовательности), оттуда и вы можете его взять, используя функции http://postgresql.ru.net/manual/functions-sequence.html

или можно так

INSERT что-то, куда-то RETURNING "ID" 

INSERT что-то, куда-то

INSERT что-то, куда-то RETURNING "ID"

Напишите, пожалуйста, на примере, как это реализовать на php. И полученный id сохранить в переменную

А я вот против таких решений

> из сиквенса (то бишь последовательности), оттуда и вы можете его взять
Беря что-либо из сиквенса, вы привязываете решение исключительно к PostgreSQL, но зачем?

Что мешает вначале транзакции взять MAX(ID), увеличить его на 1 и спокойно использовать это значение?

Уровень изолированности

Уровень изолированности транзакций
https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C...

Собственно, msr

Собственно, msr всё уже сказал. Добавлю только, что в PostgreSQL полноценно работают ТРАНЗАКЦИИ. Что очень и очень облегчает жизнь!

Благадарствую, уважаемые.

Это самое решение и нашел - курвал из последовательности автоинкремента
Мучас грасиас!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023