Re: psycopg concurrency control

Поиск
Список
Период
Сортировка
От John Lb
Тема Re: psycopg concurrency control
Дата
Msg-id CANqFGQzVExNk8AoXw+hqAGrZQrkixR45K6w5c8gHSRFLW7Ut=g@mail.gmail.com
обсуждение исходный текст
Ответ на psycopg concurrency control  (John Lb <johnlb77@gmail.com>)
Список psycopg
Again  thanks .   Now  it is more  clear for me  after  checking information  about  unique index.    Again  I am not a  DB guy  ,  but more on  embedded systems   where  I  also  have to deal with concurrency and  race conditions on another level .

OK  let's take the  hypothetical  situation again .

Let's say  I  created the unique index on  Name  after the table is created.

Thread A and  B  have the same snapshot of the  table at the beginning where there is no  bob  in  any row .     Thread A writes  bob in a row successfully  ,   and then  when  Thread B  tries to  write the name  bob ,   an   error  notification  will  appear  indicating  name bob is already in the row .    Is this right ??

Thanks



On Mon, Sep 12, 2016 at 7:40 PM, Christophe Pettus <xof@thebuild.com> wrote:

On Sep 12, 2016, at 4:39 PM, John Lb <johnlb77@gmail.com> wrote:

> In the  table is  a  column  called   Name .    Thread  A  wants  to  insert   the name  bob  in  a row  ,   and  at the same time   Thread B  wants to insert the  name  bob as well.   But   before  inserting the names ,   thread A and  thread B   do  a  SELECT  to  check  if  there is  the name  bob  already  inserted in the table ,   if  not   then    Thread A  inserts   name bob  ,  and  on the following row  ,  I believe ,    Thread  B also  inserts  name   bob in the table .  So  there are two  names  of  bob  in the table  and  I want to prevent this .

This can be prevented with a unique index on Name.

--
-- Christophe Pettus
   xof@thebuild.com


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

Предыдущее
От: John Lb
Дата:
Сообщение: Re: psycopg concurrency control
Следующее
От: John Lb
Дата:
Сообщение: Re: psycopg concurrency control