Re: Table locks

Поиск
Список
Период
Сортировка
От Jaime Casanova
Тема Re: Table locks
Дата
Msg-id 20041004201525.28217.qmail@web50009.mail.yahoo.com
обсуждение исходный текст
Ответ на Re: Table locks  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-novice
 --- Tom Lane <tgl@sss.pgh.pa.us> escribió:
> Andreas Seltenreich <seltenreich@gmx.de> writes:
> > Jake Stride writes:
> >> I thought of doing:
> >> SELECT max(jobno) from jobs where companyid=1;
>
> > I think SELECT FOR UPDATE should work fine here.
>
> Nope; he'll get something like
>
> regression=# select max(unique1) from tenk1 for
> update;
> ERROR:  SELECT FOR UPDATE is not allowed with
> aggregate functions
>
> His best bet is probably
>
>         BEGIN;
>         LOCK TABLE jobs;
>         SELECT max(jobno) from jobs where companyid=1;
>         INSERT INTO jobs ...
>         COMMIT;
>
> This is pretty horrid from a concurrency point of
> view but I don't think
> there's any other way to meet the "no gaps"
> requirement.
>
> You could reduce the strength of the lock a bit, for
> instance
>         LOCK TABLE jobs IN EXCLUSIVE MODE;
> which would allow readers of the jobs table to
> proceed concurrently,
> but not writers.  If you were willing to assume that
> all inserters into
> jobs are cooperating by explicitly obtaining the
> correct lock, you
> could reduce it to
>         LOCK TABLE jobs IN SHARE UPDATE EXCLUSIVE MODE;
> which is the lowest self-conflicting table lock
> type.  This would allow
> unrelated updates to the jobs table to proceed
> concurrently too (though
> not VACUUMs).  See
>
>
http://www.postgresql.org/docs/7.4/static/explicit-locking.html
>
>             regards, tom lane
>

Hi,
Talking about lock tables there is a way to do a
select ... for update
and then a
update .. where current of ...

I think it require a select for update in a cursor.

Thanx in advance,
Jaime Casanova

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

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

Предыдущее
От: John DeSoi
Дата:
Сообщение: Re: Writing plpgsql not in a function (directly from plsql)?
Следующее
От: Ramon Orticio
Дата:
Сообщение: QT can not connect to postgresql