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