Re: [GENERAL] How to make a read-write atomic?

From: Michael Simms <grim(at)argh(dot)demon(dot)co(dot)uk>
To: stolkd(at)email(dot)com (Daniel Stolk)
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: [GENERAL] How to make a read-write atomic?
Date: 1999-09-01 23:29:19
Message-ID: 199909012329.AAA21435@argh.demon.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

>
> Hi,
>
> I used to use the BEGIN-COMMIT pair in order to ensure that two
> processes didn't read the same data and write at the same time, so
> messing things up. But I've recently upgraded to the latest version of
> postgresql and now it doesn't work anymore. Does anybody know what's
> going on?
>
> To explain my situation in more detail:
> I want a process to read the database for the entry that has the highest
> customerid number. I then want the process to write the next entry into
> the database with a customerid that is one larger. But if two processes
> read at the same time, then they will both write an entry that has the
> same customerid number. How do I keep this from occurring since the
> BEGIN command doesn't seem to work for me anymore?
>
> I am using PostgreSQL 6.5.1 on RedHat 6.0
>
> Thanks, Daniel Stolk
>

If you are simply looking for a unique value, you can use a sequence.

The best way to do this is to make the customerid be type serial. That way
you dont have to do anything to it, when you insert into thew table, the
new row gets a unique incrimented numeric value

M Simms

In response to

Browse pgsql-general by date

  From Date Subject
Next Message marten 1999-09-02 00:05:17 Internal limitation of the CREATE VIEW statement
Previous Message Bruce Momjian 1999-09-01 23:21:49 Re: [GENERAL] Hardware optimising