From: | Michal Táborský <michal(at)taborsky(dot)cz> |
---|---|
To: | NMB Webmaster <webmaster(at)nmb(dot)it> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Query inside transaction |
Date: | 2004-06-25 10:38:50 |
Message-ID: | 40DC00BA.8020501@taborsky.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Ago | 2004-06-25 10:48:43 | Re: Query inside transaction |
Previous Message | NMB Webmaster | 2004-06-25 10:27:36 | Re: Query inside transaction |