| From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> | 
|---|---|
| To: | power2themacs <power2themacs(at)yahoo(dot)com> | 
| Cc: | <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: ISOLATION LEVEL SERIALIZABLE | 
| Date: | 2002-03-26 20:09:41 | 
| Message-ID: | 20020326120824.Y13230-100000@megazone23.bigpanda.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On Tue, 26 Mar 2002, power2themacs wrote:
> >In table two you would not create a serial instead you would create an
> >INTEGER because serial is a counter and the values in table 2 may not be
> >in table 1.
> >
> >Use a transaction like as follows
> >
> >BEGIN;
> >INSERT INTO TABLE1 VALUES (Whatever values);
> >var = SELECT CURRVAL('sequence_name');
> >INSERT INTO TABLE2 VALUES (var,whatever else);
> >COMMIT;
> >
>
> But this is the race condition I am trying to avoid. Someone can
> insert before I get the currval and it will beincremented and this
> will result in invalid data. Right now, I'm doing exactly that but I
That will only happen if another insert occurs *in your session*.
Currval is defined to give the last value from your session, so whatever
happens in other sessions will not affect the value returned from currval.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jason Earl | 2002-03-26 20:13:01 | Re: ISOLATION LEVEL SERIALIZABLE | 
| Previous Message | Fernando Schapachnik | 2002-03-26 20:06:26 | Re: ISOLATION LEVEL SERIALIZABLE |