Re: Sequence

From: Dave Cramer <Dave(at)micro-automation(dot)net>
To: "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
Cc: Simon Mitchell <pgsql(at)jseb(dot)com>, Alan Roberto Romaniuc <romaniuc(at)klais(dot)com(dot)br>, "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Sequence
Date: 2003-01-12 06:26:22
Message-ID: 1042352782.2327.16.camel@inspiron.cramers
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Ross,

Damn, you're right. Still I prefer to get the id first, but ya, I
shoulda checked.

Thanks for catching that.

Dave

On Sun, 2003-01-12 at 00:07, Ross J. Reedstrom wrote:
> On Sat, Jan 11, 2003 at 08:41:31PM -0500, Dave Cramer wrote:
> > Alan, Simon,
> >
> > You can't do this, at least not safely.
> >
> > Sequences can't be rolled back and are visible across transactions. In
> > other words if thread 1 inserted a row, and before you read the sequence
> > thread b inserted a row, you would get the same value for both threads.
> > The only way I know is to get the sequence before hand and insert it.
> > The overhead is the same.
>
> Dave -
> You really should test these things before stating with such assurance
> what will happen. Yes, sequences are outside transactions, but they
> _do_ honor connections. So, if your two hypothetical threads are
> using seperate connections (which they _must_ do, BTW), each can use
> the currval(seqname) to retrieve the value used in that connection,
> regardless of what happens in the other.
>
> Ross
--
Dave Cramer <Dave(at)micro-automation(dot)net>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2003-01-12 06:30:57 Re: Sequence
Previous Message Simon Mitchell 2003-01-12 06:06:16 Re: Sequence