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

2011-05-03 Por tema 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 Por tema Marcelo Robin
MUCHISIMAS GRACIAS !!!

El 3 de mayo de 2011 09:35, iescriva iescr...@gmail.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);
 -
 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 Por tema 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 marceloro...@gmail.com escribió:

 MUCHISIMAS GRACIAS !!!

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


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

2011-05-03 Por tema 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 iescr...@gmail.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@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda



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

2011-05-03 Por tema Julio Cesar Rodriguez Dominguez
 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 iescr...@gmail.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@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 marceloro...@gmail.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');
-
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 Por tema 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 alvhe...@alvh.no-ip.org
-
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