Re: Bloquear registros

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: crreyes(at)alumnos(dot)inf(dot)utfsm(dot)cl, Máximo Eduardo Méndez <mmendez(at)ceride(dot)gov(dot)ar>, Hugo Gamarra <hgamarra(at)hacienda(dot)gov(dot)py>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Bloquear registros
Date: 2005-08-08 21:28:42
Message-ID: c2d9e70e05080814285518fef3@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.
>
> --
> Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
> "World domination is proceeding according to plan" (Andrew Morton)
>

Nope. la funcion que originalmente posteo Maximo esta en plpgsql, es esta:

### POSTEADO POR MAXIMO ###

-- Bloqueo de una fila que está siendo consultada

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$$;

-- Ejecución de la función con un select for uptate
begin; -- abre una transacción
select blk(1);

#########################################

Aunque me parece mucho trabajo para mas de hacer un select ... for update
pero como nadie pregunto por eso... le dije lo que queria saber

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-08-08 21:56:36 Re: Bloquear registros
Previous Message Martín Marqués 2005-08-08 21:26:01 Re: PostgreSql con PHP