serialization errors when inserting new records

Поиск
Список
Период
Сортировка
От Ralph van Etten
Тема serialization errors when inserting new records
Дата
Msg-id Pine.LNX.4.44.0501221059550.2241-100000@exp-toy.et10.loc
обсуждение исходный текст
Ответы Re: serialization errors when inserting new records  (Tino Wildenhain <tino@wildenhain.de>)
Re: serialization errors when inserting new records  (Gary Doades <gpd@gpdnet.co.uk>)
Список 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.






В списке pgsql-general по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: plpythonu on 7.4
Следующее
От: Tino Wildenhain
Дата:
Сообщение: Re: serialization errors when inserting new records