SERIAL order and INSERT order

From: l1(at)nym(dot)hush(dot)com
To: pgsql-novice(at)postgresql(dot)org
Subject: SERIAL order and INSERT order
Date: 2011-06-14 18:30:36
Message-ID: 20110614183036.58B4314DBCF@smtp.hushmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi

I have a table defined as follows:

CREATE TABLE mytable (
seqnumber BIGSERIAL;
...
)

and I have multiple threads inserting into the table.

If multiple threads insert at the same time, will the sequence
numbers generated always appear in the table in order?

e.g.
thread 1 does INSERT getting serial number 1
thread 2 does INSERT getting serial number 2

and both complete successfully (no rollbacks).

Are there any cases where an observer might see a row with serial
number 2 but not yet see serial number 1, perhaps because thread 1
hasn't completed its insert yet? For example SELECT * WHERE
seqnumber < 3; would return only a row with seqnumber=2?

thanks

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Merlin Moncure 2011-06-14 19:11:44 Re: SERIAL order and INSERT order
Previous Message Andreas Kretschmer 2011-06-14 13:43:35 Re: Passing the table name as a function argument in PLPGSQL