| От | Michal Táborský |
|---|---|
| Тема | Re: Query inside transaction |
| Дата | |
| Msg-id | 40DC00BA.8020501@taborsky.cz обсуждение исходный текст |
| Список | pgsql-general |
NMB Webmaster wrote:
> But if someone else runs the same transaction in the same time what
> value does "currval('sequence')" return? That one of the first
> transaction or that one of the other transaction? Moreover, field
> id is a unique primary key, it does not accept duplicates.
That's the beauty of sequences. They are transaction-safe. Co
"currval('sequence')" will always return the same value of the previous
nextval call within that transaction, no matter how many other
transactions picked the numbers in between.
To demonstrate:
Transaction 1 Transaction 2
BEGIN; --
nextval('seq') = 1 BEGIN;
do something.. nextval('seq') = 2
do something else... COMMIT;
currval('seq') = 1
COMMIT;
--
Michal Taborsky
http://www.taborsky.cz
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера