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