RE: Re: Unanswered questions about Postgre

Поиск
Список
Период
Сортировка
Искать
От
Roger Wernersson
Тема
RE: Re: Unanswered questions about Postgre
Дата
Msg-id
5146853DD571D411AC54000102070D610125C6@MINGBGNTS02
Список
Дерево обсуждения
RE: Re: Unanswered questions about Postgre Roger Wernersson <roger.wernersson@mindark.com>
No, SELECT FOR UPDATE locks the rows matching the constraint and if no rows
match, none are locked.

as in (somewhat oracle syntax)

BEGIN
  SELECT 'x' INTO a FROM test WHERE y = 10 FOR UPDATE;
  UPDATE test SET z = 12;
EXCEPTION
  WHEN no_data_found THEN
    INSERT INTO test VALUES (10, 12);
END;


-----Original Message-----
From: Edward Q. Bridges [mailto:ed.bridges@buzznik.com]
Sent: den 12 december 2000 17:10
To: PostgreSQL general mailing list; Roger Wernersson
Subject: RE: [GENERAL] Re: Unanswered questions about Postgre


On Tue, 12 Dec 2000 12:04:46 +0100, Roger Wernersson wrote:

> 
> I can't BEGIN - SELECT FOR UPDATE - INSERT or UPDATE - COMMIT as someone
> might insert after my SELECT and before my INSERT.
> 

correct me if i'm wrong, but a select for update locks the table for
an insert or an update until the end of the transaction.

--e--



> Is there a right solution?
> 
> /Roger
> 
> -----Original Message-----
> From: Tim Kientzle [mailto:kientzle@acm.org]
> Sent: den 12 december 2000 02:10
> To: PostgreSQL general mailing list
> Subject: [GENERAL] Re: Unanswered questions about Postgre
> 
> 
> > Of course, people really shouldn't be inserting
> > objects which already exist, ...
> 
> On the contrary, the best way to test if
> something already exists is to just try the
> INSERT and let the database tell you if
> it's already there.  Both faster and more
> reliable than doing SELECT then INSERT.
> 
> 			- Tim
> 


В списке pgsql-general по дате отправления
От: Bruce Momjian
Дата:
Сообщение: Re: manuals
От: Fernan Aguero
Дата:
Сообщение: Re: Large files on linux
FAQ