Re: How to lock a table for update and make other connections to wait on it

Поиск
Список
Период
Сортировка
От Karsten Hilbert
Тема Re: How to lock a table for update and make other connections to wait on it
Дата
Msg-id trinity-e5f61172-56ce-4b5e-9832-df3f03c1824e-1436480441290@3capp-gmx-bs07
обсуждение исходный текст
Ответ на How to lock a table for update and make other connections to wait on it  ("Vamsi Krishna Reddy -T (vamsredd - TATA CONSULTANCY SERVICES LIMITED at Cisco)" <vamsredd@cisco.com>)
Список psycopg
Now I am facing a new problem. Below is the detailed description of the problem.
 
We have multiple instances of a program which runs on different locations and inserts certain data in the same
database.
 
Below are the steps followed by an instance of the program
 
1.       Insert a row to a table , using cursor.execute()
2.       To fetch the row id of the above inserted data, we are using cursor.execute() to execute a sql command which
fetchesthe max ‘id’ from the table (id is a column in the table which gets incremented on each insert) 
 
Here the problem is, as we have parallel processes updating the same db and same table, before we execute step 2 there
mightbe one more row inserted  into the table by a different process. 
In this case step 2 returns me the wrong id.


You need:   INSERT ... RETURNING ...

Karsten


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

Предыдущее
От: Christophe Pettus
Дата:
Сообщение: Re: How to lock a table for update and make other connections to wait on it
Следующее
От: "Vamsi Krishna Reddy -T (vamsredd - TATA CONSULTANCY SERVICES LIMITED at Cisco)"
Дата:
Сообщение: Re: How to lock a table for update and make other connections to wait on it