From: | "Gustavo" <gustavor(at)intercomgi(dot)net> |
---|---|
To: | "PostgreEs" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Duda conceptual sobre locks en PostgreSQL |
Date: | 2007-08-15 22:47:52 |
Message-ID: | 000701c7df8e$54682550$e802a8c0@Maquina |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas lista
Tengo el siguiente problema. Estoy desarrollando una aplicacion que invoca a funciones definidas en la BD y luego de andar un rato, me tira un deadlock y no se bien porque. me late que viene por un SELECT .. FOR UPDATE que tengo definido en una funcion.
Lo uso asi:
//Busco bloquear una fila de la tabla para que otra transaccion no obtenga el mismo id
SELECT contador_actual FROM tabla_contador WHERE id_usr=xx FOR UPDATE;
..// Hago inserciones en una tabla usando el contador que obtuve
//Actualizo el contador
UPDATE tabla_contador SET contador_actual=contador_actual+1 WHERE id_usr=xx;
Esta bien usado? hay alguna otra forma de hacer esto?( creo que las secuencias no se adaptarian para este caso)
Existe alguna forma de detectar como sucedio el deadlock mirando lso logs de la BD??
Gracias y saludos
Gustavo
From | Date | Subject | |
---|---|---|---|
Next Message | Gustavo | 2007-08-15 23:12:29 | Duda conceptual sobre locks en PostgreSQL (SIN HTML) |
Previous Message | Jenaro Centeno Gomez | 2007-08-15 22:31:17 | Re: Este es el verdadero problema?? |