From: | "Juan P(dot) Aviles" <jputem(at)yahoo(dot)es> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Row level lock in plpgsql |
Date: | 2005-04-06 20:20:58 |
Message-ID: | 20050406202059.61770.qmail@web26204.mail.ukl.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola amigos :
Este es mi primer mensaje a la lista ojala puedan ayudarme.
Mi problema es el siguiente tengo una tabla en la que llevo el stock de productos de la siguiente manera:
cod_prod
cantidad_actual
cantidad_mov
cantidad_total
registro(timestamp)
(mas otros campos que son irrelevantes)
simulando las viejas tarjetas de existencia, es decir se registra el producto que tuvo aumento o disminucion de stock , la cantidad actual del producto en stock, la cantidad que aumentara o disminuira y la cantida total despues del movimiento asi como la fecha y hora del mismo.
Los movimiento los genero asi, cada vez que un producto tiene movimiento ( aumento o disminucion) aumento en este ejemplo (plpgsql) hago un
Select Into reg * from stock where cod_prod = 'producto' order by registro desc;
IF Found THEN
cantidad_actual := reg.saldo_total;
cantidad_mov := $2;
cantidad_total := cantidad_actual + cantidad_mov;
registro:= ''now'';
INSERT INTO stock (cod_prod ,
cantidad_actual ,
....
......);
END IF;
Mi duda era , que pasa si dos procediemientos llegan al mismo tiempo a la parte del select con un mismo producto?, segun las pruebas que hice ambos toman el mismo valor de reg.saldo_total, y queda la escoba .
Lo que necesito es bloquear la fila que me devuelve el select hasta que haga el incremento o disminucion y el posterior insert en la tabla , estuve leyendo la documentacion y me encontre con row level lock que es posible utilizando el select for update, lo probe y no me funciono.
Busque en internet y me encontre ha alguien que dice que no se pueden hacer select for update en plpgsql.
¿que opinan ?
¿Como puedo lograr lo deseado???
Ojala halla sido claro en mi explicacion
Juan Pablo Aviles
---------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Ivan Figueroa | 2005-04-06 20:23:11 | Re: problemas con el registro del EMS pgsql |
Previous Message | Fher | 2005-04-06 20:19:06 | Re: Pgdump sin GRANT |