Re: CAMPO SERIAL...

From: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
To: Marcelo Robin <marcelorobin(at)gmail(dot)com>
Cc: iescriva <iescriva(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: CAMPO SERIAL...
Date: 2011-05-03 14:01:51
Message-ID: BANLkTi=xn9V5Yme_x8dAQ5Z06PybfT=Zdg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> El 3 de mayo de 2011 10:30, Julio Cesar Rodriguez Dominguez
> <jurasec(at)gmail(dot)com> escribió:
>>
>> El día 3 de mayo de 2011 07:35, iescriva <iescriva(at)gmail(dot)com> escribió:
>> > El 03/05/11 13:36, Marcelo Robin escribió:
>> >> Tengo una aplicación en VB6 y resulta que tengo una tabla en postgresql
>> >> donde la clave primaria es un campo de tipo serial. En otras bases se
>> >> traduciría en un "autonumerico"... cuando hago el insert no se
>> >> serializa
>> >> automaticamente...
>> >> por ejemplo tengo:
>> >>
>> >> INSERT INTO com.bultos(id, bulto, bulto_corto) VALUES (?, ?, ?);
>> >
>> >
>> > Al crear la tabla asignas a id el tipo SERIAL, luego en el insert no le
>> > pases el valor para el campo id.
>> >
>> >
>> > CREATE TABLE com.bultos(
>> >  id SERIAL PRIMARY KEY,
>> >  bulto integer,
>> >  bulto_corto integer
>> >
>> > );
>> >
>> > INSERT INTO com.bultos(bulto, bulto_corto) VALUES (1, 1);
>> > INSERT INTO com.bultos(bulto, bulto_corto) VALUES (1, 2);
>> > INSERT INTO com.bultos(bulto, bulto_corto) VALUES (2, 1);
>>
>> Aveces es una tablas con una lista grande de campos a insertar, para
>> evitar listar todos, puede usar default en el campo serial:
>> INSERT INTO com.bultos VALUES (default,2, 1);
>> -
>> Enviado a la lista de correo pgsql-es-ayuda
>> (pgsql-es-ayuda(at)postgresql(dot)org)
>> Para cambiar tu suscripción:
>> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
>

El día 3 de mayo de 2011 08:51, Marcelo Robin <marcelorobin(at)gmail(dot)com> escribió:
> Tomando como default me lo toma como serial ?
> Estaba viendo que tengo el id definido de otra forma...
> CREATE TABLE com.bultos
> (
> id bigint NOT NULL,
> bulto text,
> bulto_corto text,
> CONSTRAINT bultos_pkey PRIMARY KEY (id)
> )
> WITHOUT OIDS;
> ALTER TABLE com.bultos OWNER TO ariel;
> GRANT ALL ON TABLE com.bultos TO ariel WITH GRANT OPTION;
> GRANT ALL ON TABLE com.bultos TO public;
>
>

No, la columna debió de ser definido como serial, pero en su defecto
puedes crearlo.

CREATE SEQUENCE tabla_id_seq;
ALTER TABLE tabla ALTER COLUMN id SET DEFAULT nextval('tabla_id_seq');

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2011-05-03 14:02:12 Re: CAMPO SERIAL...
Previous Message Marcelo Robin 2011-05-03 13:51:18 Re: CAMPO SERIAL...