serialization errors when inserting new records

From: Ralph van Etten <ralph(at)et10(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: serialization errors when inserting new records
Date: 2005-01-22 10:14:20
Message-ID: Pine.LNX.4.44.0501221059550.2241-100000@exp-toy.et10.loc
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hoi,

I searched the archives but couldn't find an answer to this:

I have a table (simplyfied)

CREATE TABLE test (
id INT PRIMARY KEY,
name VARCHAR(250)
);

I insert records with

INSERT INTO test (id, name)
SELECT COALESCE(MAX(id)+1, 1), 'name' FROM test

Ofcourse this gives problems when two clients are inserting a record at
the same time. (duplicate primary keys) But, i can't use a sequence in my
application (the pk consists of more than just a sequence)

one solution would be to do a 'LOCK TABLE test IN SHARE MODE' before
inserting. This solves my problem but i'm not sure if its the
best way to deal with this kind of concurrency problems ? Is there a
better way ?

Thanks in advance.

Ralph.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tino Wildenhain 2005-01-22 11:46:39 Re: serialization errors when inserting new records
Previous Message Michael Fuhr 2005-01-22 06:11:02 Re: plpythonu on 7.4