Re: Bloquear registros

From: Mximo Eduardo Mndez <mmendez(at)ceride(dot)gov(dot)ar>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>, systemguards(at)gmail(dot)com, crreyes(at)alumnos(dot)inf(dot)utfsm(dot)cl, hgamarra(at)hacienda(dot)gov(dot)py, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Bloquear registros
Date: 2005-08-09 09:11:38
Message-ID: BasiliX-1.1.1_fix2-112358949842f89d7abc6a0@wwwmail.ceride.gov.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola. No recuerdo cmo se origin este hilo, pero s que respond acerca de cmo bloquear un registro. Solamente envi esto como una idea y se ve la definicin de una funcin, no una ejecucin directa desde el psql ;-)

Lo que mand fue algo as:

create table tmp (col int);
insert into tmp values (1);

create function blk (int) returns void language plpgsql as $$
begin
perform * from tmp where col=$1 for update;
return;
end$$;

-- Ejecucin de la funcin con un select for uptate
begin; -- se abre una transaccin

select blk(1);

blk
-----

(1 fila)

-- En otra sesin:

select blk(1);

Saludos.

Creo que

> On 8/8/05, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> > On Mon, Aug 08, 2005 at 04:28:42PM -0500, Jaime Casanova wrote:
> > > On 8/8/05, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> > > > On Mon, Aug 08, 2005 at 04:15:38PM -0400, crreyes(at)alumnos(dot)inf(dot)utfsm(dot)cl wrote:
> > > > > Esto solo sirve para Postgresql 8.x ? estoy usando 7.4.7 y me lanza un error al
> > > > > hacer:
> > > > >
> > > > > psycho-> perform * from tmp where col=$1 for update;
> > > > > ERROR: syntax error en o cerca de "$" at character 60
> > > >
> > > > Hacer eso donde? Claramente eso no se puede hacer en SQL, porque no hay
> > > > PERFORM ni $1. En plpgsql podria funcionar.
> > >
> > > Nope. la funcion que originalmente posteo Maximo esta en plpgsql, es esta:
> >
> > Ah, ya entendi. Entonces al mail de Cristofer Reyes le falto contexto.
> > Pero mi punto se mantiene: si trata de hacer eso en SQL no va a
> > funcionar; y si esta tratando de hacerlo en plpgsql entonces deberia
> > mostrar la funcion completa (o una version simplificada).
> >
> > --
> > Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
> > "Everybody understands Mickey Mouse. Few understand Hermann Hesse.
> > Hardly anybody understands Einstein. And nobody understands Emperor Norton."
> >
>
> completamente de acuerdo...
>
> --
> Atentamente,
> Jaime Casanova
> (DBA: DataBase Aniquilator ;)
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 5: Has ledo nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message William Diaz Pabón 2005-08-09 13:12:09 Error al conectarse a Postgres 7.4
Previous Message Mximo Eduardo Mndez 2005-08-09 08:32:57 Re: Timeout