Обсуждение: Updating selected record

Поиск
Список
Период
Сортировка

Updating selected record

От
"Levente Lajko"
Дата:
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Hi,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">I have problem with a table from where I select specific field data </span></font><p
class="MsoNormal"style="text-indent:36.0pt"><font face="Arial" size="2"><span
style="font-size:10.0pt;font-family:Arial">SELECTfiled1, field2 FROM tbl WHERE progress = 1 LIMIT 1</span></font><p
class="MsoNormal"><fontface="Arial" size="2"><span style="font-size:10.0pt; 
font-family:Arial"> through a perl script or multiple instances of that script. The script sets the progress value of
theprogressed record to 0, so that other processes not to access that row. I presume I would need some locking
solution,only I haven’t found the real one. </span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">I hope somebody has a bright idea.</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Regards,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Levi</span></font></div>

Re: Updating selected record

От
John DeSoi
Дата:
On Feb 8, 2005, at 9:05 AM, Levente Lajko wrote:

>  
>
> I have problem with a table from where I select specific field data
>
>  SELECT filed1, field2 FROM tbl WHERE progress = 1 LIMIT 1
>
>  through a perl script or multiple instances of that script. The
> script sets the progress value of the progressed record to 0, so that
> other processes not to access that row. I presume I would need some
> locking solution, only I haven’t found the real one.
>
>   
>
> I hope somebody has a bright idea.

Maybe you are looking for SELECT FOR UPDATE as in

SELECT filed1, field2 FROM tbl WHERE progress = 1 LIMIT 1 FOR UPDATE;

This locks the row for the remainder of the transaction. See

http://www.postgresql.org/docs/8.0/interactive/sql-select.html#SQL-FOR-
UPDATE




John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL