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