----- Mensaje original -----
> De: "Daniel Carrero" <dcarre...@gmail.com>
> Para: "Gerardo Herzig" <gher...@fmed.uba.ar>
> CC: "Fernando A" <soporteallpurp...@gmail.com>, "Lista PostgreSQL" 
> <pgsql-es-ay...@postgresql.org>
> Enviados: Martes, 3 de Octubre 2017 11:38:33
> Asunto: Re: Registros desaparecidos de la BD
> 
> El 3 de octubre de 2017, 10:48, Gerardo Herzig<gher...@fmed.uba.ar>
> escribió:
> 
> >
> > ----- Mensaje original -----
> > > De: "Fernando A" <soporteallpurp...@gmail.com>
> > > Para: "Alvaro Herrera" <alvhe...@alvh.no-ip.org>
> > > CC: "Lista PostgreSQL" <pgsql-es-ay...@postgresql.org>
> > > Enviados: Martes, 3 de Octubre 2017 10:29:58
> > > Asunto: Re: Registros desaparecidos de la BD
> > >
> > > Hola, aqui te adjunto una captura de la consulta que muestra los
> > > "registros" de la tabla en cuestión.
> > > El campo "id" es un campo serial, podes observar en las dos filas
> > > "pintadas" que salta el valor de id, que corresponde a los registros que
> > se
> > > perdieron.
> > >
> > > Si, empiezo a pensar que es algo como lo que tu comentas...........pero
> > > todavia estoy buscando el error!
> > > Gracias!
> > > Saludos
> > >
> > >
> > > El 3 de octubre de 2017, 09:45, Alvaro Herrera<alvhe...@alvh.no-ip.org>
> > > escribió:
> > >
> > > > Fernando A escribió:
> > > > > Estimados,
> > > > > en tres ocasiones, me encuentro con que han desaparecido algunos
> > > > registros
> > > > > de distintas tablas de una BD,.
> > > >
> > > > Por favor explica a qué te refieres con que "han desaparecido algunos
> > > > registros".  ¿cómo identificas que desaparecieron?
> > > >
> > > > Lo que suena posible es que una transacción quedó sin cerrar, y luego
> > se
> > > > cerró la conexión, dejando el mensaje del log que mostraste; todos los
> > > > cambios que se hicieron en esa transacción se pierden.
> > > >
> > > > --
> > > > Álvaro Herrera                https://www.2ndQuadrant.com/
> > > > PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
> > > >
> > >
> >
> > Los campos seriales (implementados con una sequence) son propensos a tener
> > "baches".
> > Cuando se hace un nextval(), la secuencia *siempre* se incrementa,
> > independientemente de si la transacccion termina en COMMIT o ROLLBACK
> >
> > Entonces, ya no estariamos hablando de registros perdidos, solo de
> > transacciones fallidas. El log te sabra indicar cuales fallan y porque.
> >
> > Saludos,
> > Gerardo
> >
> >
> Puede ser que la aplicación este creando los id?
> Me explico, la aplicación genera el id cuando el usuario presiona "nuevo",
> si el usuario presiona el botón "guardar" lo que hace es una actualización
> del registro que antes había creado, en caso de que el usuario presione
> "cancelar" el id se pierde.
> 
> Mala o buena practica... no lo sé :D
> 

Si, es posible. En la practica los campos SERIAL se implementan asignandole un 
DEFAULT que sale de una llamada a netxval('nombre_sequence'). Podras verlo si 
haces un "describe" de la tabla (\d si usas psql)



> --
> Daniel Carrero Canales
> +56974726453
> 

Reply via email to