Como no he puesto la solución a la que he llegado la pongo ahora.
Ya que hago restauración por tablas y no de toda la base de datos lo que he
hecho es esto cuando restauro envio un setvalue para cada tabla de esta
forma
"SELECT setval('indicefacturas_contador_seq',(SELECT max(contador) FROM
indicefacturas)+1)"
'indicefacturas_contador_seq' = nombre de la sequencia
SELECT max(contador) FROM indicefacturas)+1) = Selecciono el maximo valor de
mi columna serial y le sumo 1
Creo que es a la mejor solución que he llegado si les parece correcto,a mi
parece una buena solución a mi problema.
----- Original Message -----
From: "Fernando Hevia" <fhe...@ip-tel.com.ar>
To: "'Alvaro Herrera'" <alvhe...@alvh.no-ip.org>; "'Juan Romero'"
<jgrom...@gmail.com>
Cc: "'Vicente Ramon Roca Cantin'" <vice...@rvminformatica.com>;
<pgsql-es-ayuda@postgresql.org>
Sent: Friday, August 07, 2009 12:59 AM
Subject: RE: [pgsql-es-ayuda] Campos serial pierden indice al hacer
pg_restore
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvhe...@alvh.no-ip.org]
Enviado el: Jueves, 06 de Agosto de 2009 16:56
Para: Juan Romero
CC: Fernando Hevia; 'Vicente Ramon Roca Cantin';
pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Campos serial pierden indice al
hacer pg_restore
Juan Romero escribió:
>
> On Aug 6, 2009, at 2:39 PM, Fernando Hevia wrote:
>
> >Para evitar confusiones, en lo personal prefiero no usar campos
> >serial sino campos bigint, crear explicitamente la secuencia y
> >asociarla con el tradicional ... DEFAULT nextval('nombre
secuencia').
>
> Acaso eso no es lo que hace postgres cuando uno crea un
campo serial?
> Hasta donde he visto, postgres crea una secuencia y la asocia con
> default. La unica diferencia es que en tu caso tu le pones
el nombre a
> dicha secuencia; o me estoy perdiendo de algo?
No, estás en lo cierto. Lo que hace Fernando no tiene
ninguna ventaja, aparte de definir el nombre de la secuencia
(cosa que no sirve de mucho de todas formas).
Como dije, no se trata de ventajas sino de una preferencia personal.
Al forzar la declaración explícita me aseguro no olvidar configurar la
secuencia tal cual quiero que se comporte: aparte del nombre, parámetros
como el número de inicio, cuantos valores pre-generar por nextval(), etc.
Y es inevitable cuando se requiere especificar una secuencia existente, por
ejemplo si desde varias tablas tomarán valores de una misma secuencia.
Saludos.
--
TIP 8: explain analyze es tu amigo
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html