From: | <dkuroki(at)dbas(dot)com(dot)ar> |
---|---|
To: | "Miguel Angel" <mvillagomez(at)sayab(dot)com(dot)mx>, "'Leonel Nunez'" <lnunez(at)enelserver(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Debo usar Transacciones? |
Date: | 2006-04-19 20:51:48 |
Message-ID: | WRhwzbZF.1145479908.1484130.dkuroki@dbas.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
La solucion que yo propongo tiene que ver con la inclusion de secuencias
para resolverlo.
mas alla del diseño actual, creo que deberias usarlas ( un tipo serial
usa una secuencia impicita ).
De hecho es la razon por la cual el uso de la funcion nextval() no
"transaccione" es decir, que por mas rollback que ocurra, la secuencia
ya paso al valor siguiente.
En resumen, para resolver tu problema puntual, lo ideal seria cambiar el
diseño utilizando secuencias.
Si no puede ser, el uso de transacciones puede ocasionarte los problemas
que vos mismo mencionas.
Si no transaccionas, estarias dejando de usar esa potencialidad con todo
lo que significa.
Espero ayude...
Dorian Kuroki
DBAS.
Con fecha 19/4/2006, "Miguel Angel" <mvillagomez(at)sayab(dot)com(dot)mx> escribió:
>No uso seriales, por que así fue el diseño de las tablas, ya he mencionado
>el cambio por acá pero se insiste que el diseño tal cual esta ahora es
>bueno(y ya me canse de discutir con el tipo).
>Bueno espero su opinión si usar o no transacciones es lo correcto.
>
>-----Mensaje original-----
>De: pgsql-es-ayuda-owner(at)postgresql(dot)org
>[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Leonel Nunez
>Enviado el: Miércoles, 19 de Abril de 2006 01:23 p.m.
>Para: Miguel Angel
>CC: pgsql-es-ayuda(at)postgresql(dot)org
>Asunto: Re: [pgsql-es-ayuda] Debo usar Transacciones?
>
>Miguel Angel wrote:
>> Qué tal mi duda es si debo utilizar transacciones para mi problema:
>>
>> Tengo una BD en la que se dan de alta usuarios de forma única, en un
>tiempo
>> promedio de cada 15m, al día se vienen dando alrededor de 9600 movimientos
>> de alta y baja de usuarios. Yo he realizado un query para dar de alta a
>2300
>> registros más, insertando datos en alrededor de 15 tablas. Para dar de
>alta
>> a un nuevo registro debo obtener el siguiente número de usuario, pero este
>> valor no se da de forma automática, sino que se debe obtener por:
>>
>> SELECT MAX(num_usr)+1 FROM tabla1
>>
>> Esta es una forma de diseño que no han querido cambiar; pero bueno la
>> pregunta es:
>>
>> Si una transacción puede evitar que los datos de algún usuario que este
>> dando de alta un nuevo registro(direcciones y demás incluidos), se mezclen
>> con los datos que yo estaré dando de alta en ese momento con mi query; en
>> dado que coincida en cualquier momento. Esto debido a la forma en que se
>> obtiene el número de usuario lo cual es lo mismo para 4 tablas más y en el
>> resto debo de vincular.
>>
>> Porque me queda la duda de que si un usuario mete un nuevo registro
>mientras
>> yo también lo hago, en alguna de las tablas yo vincule la información que
>> este metiendo con la del usuario en ese momento.
>>
>> Espero darme a entender.
>>
>>
>>
>> ---------------------------(fin del mensaje)---------------------------
>> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>>
>>
>>
>
>
>y porque no usas datos seriales ??
>
>
>Leonel
>
>
>---------------------------(fin del mensaje)---------------------------
>TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
>
>
>
>
>
>---------------------------(fin del mensaje)---------------------------
>TIP 4: No hagas 'kill -9' a postmaster
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-04-19 21:05:41 | Re: Debo usar Transacciones? |
Previous Message | Juan Martínez | 2006-04-19 20:44:41 | RE: Debo usar Transacciones? |