[pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Marcelo Robin
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 (?, ?, ?);

pero el id que es el campo serial, previamente tengo que calcular el máximo
valor y le sumaría una unidad (no encontré otra forma para poder
hacerlo)...
Como podría hacer esto medianamente automatizado ?

Saludos y muchas gracias desde ya


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread iescriva
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);
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Marcelo Robin
MUCHISIMAS GRACIAS !!!

El 3 de mayo de 2011 09:35, iescriva  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);
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread evelyn cuenca
para cuando necesites obtener el siguiente valor de la secuencia:
select nextval('com.bultos_id_seq')

INSERT INTO com.bultos VALUES ((select nextval('com.bultos_id_seq')),2, 2);


--
evelyn


El 3 de mayo de 2011 08:36, Marcelo Robin  escribió:

> MUCHISIMAS GRACIAS !!!
>
> El 3 de mayo de 2011 09:35, iescriva  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);
>> -
>> Enviado a la lista de correo pgsql-es-ayuda (
>> pgsql-es-ayuda@postgresql.org)
>> Para cambiar tu suscripción:
>> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>>
>
>


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Julio Cesar Rodriguez Dominguez
El día 3 de mayo de 2011 07:35, iescriva  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@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Marcelo Robin
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;




El 3 de mayo de 2011 10:30, Julio Cesar Rodriguez Dominguez <
jura...@gmail.com> escribió:

> El día 3 de mayo de 2011 07:35, iescriva  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@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Julio Cesar Rodriguez Dominguez
> El 3 de mayo de 2011 10:30, Julio Cesar Rodriguez Dominguez
>  escribió:
>>
>> El día 3 de mayo de 2011 07:35, iescriva  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@postgresql.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  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');
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] CAMPO SERIAL...

2011-05-03 Thread Alvaro Herrera
Excerpts from Marcelo Robin's message of mar may 03 10:51:18 -0300 2011:
> Tomando como default me lo toma como serial ?

Sí (si es que el default es el nextval de la secuencia).

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

Más abajo debería haber un CREATE SEQUENCE y un ALTER SEQUENCE .. OWNED
BY además de un ALTER COLUMN / SET DEFAULT que ligan la secuencia con la
columna.  Eso hace que el campo sea SERIAL.

-- 
Álvaro Herrera 
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda