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');
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... |