is there a select for update insert if not exist type command?

Поиск
Список
Период
Сортировка
От Evan Rempel
Тема is there a select for update insert if not exist type command?
Дата
Msg-id F1226B1821911E4BB69462DAF68098536E3233376B@EMC6.uvic.ca
обсуждение исходный текст
Ответ на Re: Change request - log line prefix  (hubert depesz lubaczewski <depesz@depesz.com>)
Ответы Re: is there a select for update insert if not exist type command?  (Bill Moran <wmoran@potentialtech.com>)
Re: is there a select for update insert if not exist type command?  (Edson Richter <edsonrichter@hotmail.com>)
Re: is there a select for update insert if not exist type command?  ("David Johnston" <polobo@yahoo.com>)
Список pgsql-general
I have a project where I will have two clients essentially doing the
same things at the same time. The idea is that if one has already done the
work, then the second one does not need to do it.

I was hoping that adding a task related unique identifier to a table
could be used to coordinate these client, something like a primary key and using
select for update.

The challenge I have is during the initial insert. One of the two clients will cause postgresql
to log an error, which I would rather avoid (just seems dirty).

Here is the time line;

Both clients A and B becomes aware to do a task

Client A or client B issues the "select for update ... if not exist do insert" type command
The other client gets blocked on the "select for update.

First client finishes insert/updates to record that it has delt with the task

second client gets unblocked and reads the record realizing that the first client delt with the task already.


It is the "select for update ... if not exist do insert" type command that I am ignorant of how to code.

Anyone care to school me?

Evan.

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Extending SQL C-language multidimension arrays
Следующее
От: Bill Moran
Дата:
Сообщение: Re: is there a select for update insert if not exist type command?