On Tue, 19 Aug 2008 10:54:28 -0300
"Carlos Mendez" <[EMAIL PROTECTED]> wrote:

> Hola Cesar, gracias por la respuesta,
> 
> creo que con un ejemplo lo entendere mejor, si tengo la siguiente tabla,
> como lo defino para que *el campo id empieze en 1000?*
> 
> CREATE TABLE personas (
>   id serial NOT NULL,   //este campo tiene que empezar en 1000 y no en 1
>   nombre character varying(50) NOT NULL,
>   PRIMARY KEY  (id)
> )without oids;
> 
> porque hice lo me dijeron pero el campo id sigue empezando en 1 y yo quiero
> que el campo id empieze en 1000,
> 
> gracias por la ayuda,
> saludos
> 

luego de crear la tabla debes fijarte (viendo el 'notice' o haciendo '\d 
personas') con que nombre se creó la secuencia y puedes utilizar el comando 
'setval' para que inicie en el número que deseas

Ejemplo:

postgres=# CREATE TABLE personas (
postgres(#   id serial NOT NULL,   --este campo tiene que empezar en 1000 y no 
en 1
postgres(#   nombre character varying(50) NOT NULL,
postgres(#   PRIMARY KEY  (id)
postgres(# )without oids;
NOTICE:  CREATE TABLE creará una secuencia implícita «personas_id_seq» para la 
columna serial «personas.id»
NOTICE:  CREATE TABLE / PRIMARY KEY creará el índice implícito «personas_pkey» 
para la tabla «personas»
CREATE TABLE
postgres=# SELECT setval('personas_id_seq', 1000, false);
 setval
--------
   1000
(1 fila)

postgres=# insert into personas (nombre) values('prueba');
INSERT 0 1
postgres=# insert into personas (nombre) values('prueba2');
INSERT 0 1
postgres=# select * from personas;
  id  | nombre
------+---------
 1000 | prueba
 1001 | prueba2
(2 filas)


--

Alejandro Chen
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a