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