Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

tabla en postgres no se auto-incrementa con el BigSerial

Estas en el tema de tabla en postgres no se auto-incrementa con el BigSerial en el foro de PostgreSQL en Foros del Web. Saludos a todos, Me podrían ayudar con un problema que se me presentó en postgreSQL. Lo que pasa es que tengo una tabla llamada adm_dependencia ...
  #1 (permalink)  
Antiguo 18/02/2010, 10:38
 
Fecha de Ingreso: febrero-2010
Ubicación: Machala
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
tabla en postgres no se auto-incrementa con el BigSerial

Saludos a todos,

Me podrían ayudar con un problema que se me presentó en postgreSQL. Lo que pasa es que tengo una tabla llamada adm_dependencia con la siguiente estructura

CREATE TABLE "prueba."adm_dependencia"(
"dep_codigo" BigSerial NOT NULL,
"dep_nombre" Character varying(150),
"dep_siglas" Character varying(20),
"dep_estado" Character(1),
"tdep_codigo" Bigint NOT NULL
) WITH (OIDS=FALSE);

y la llave primaria es dep_codigo:
ALTER TABLE "prueba"."adm_dependencia" ADD CONSTRAINT pk_adm_dependencia" PRIMARY KEY ("dep_codigo");

Ahora, diseñé una interfaz usando zend framework, para guardar informacion en esa tabla y envío datos en todos los campos excepto el dep_codigo, y me devuelve una inserción con éxito.

Lo que pasa es que la institución necesitaba con urgencia subir información de esta tabla en la base de datos y como a la interfaz le faltaba controlarle algunos requerimientos, lo inserté manualmente via sql de esta forma:

INSERT INTO "prueba"."adm_dependencia" VALUES (1, 'ESCUELA DE INFORMATICA', 'EI', 'A', '4');
INSERT INTO "prueba"."adm_dependencia" VALUES (2, 'ESCUELA DE INGENIERIA CIVIL','EIC', 'P','4');
....
... muchos otros insert

ahora, que ya acabe la interfaz para ponerla a funcionar, me percato que a lo que hago un insert en la tabla, esta me sale el siguiente error:

"SQLSTATE[23505]: Unique violation: 7 ERROR: llave duplicada viola restriccion de unicidad \u00abpk_dependencia\u00bb"

y para asegurarme, fui al phpAdmin e inserte manualmente en la tabla, y me daba el mismo error, es decir no me quiere auto-incrementar el campo dep_codigo; pero si yo hago inserto el id del dep_codigo, ahí si lo hace.

El caso, es que no sé como hacer para que se auto-incremente el campo, creo que la funcion nextval es la que se encarga de controlar la secuencia, pero no funciona.

De antemano, mis agradecimientos.

Última edición por mar_y_sol; 18/02/2010 a las 10:46
  #2 (permalink)  
Antiguo 18/02/2010, 11:34
 
Fecha de Ingreso: febrero-2010
Ubicación: Machala
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: tabla en postgres no se auto-incrementa con el BigSerial

ya lo solucione, jaja, ha sido solo de cambiarle el valor de la secuencia que tiene la tabla, esto era obvio, pero no sabia en que parte del administrador estaba para cambiarle.
  #3 (permalink)  
Antiguo 18/03/2010, 06:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: tabla en postgres no se auto-incrementa con el BigSerial

Hola, a mi tambien me ha salido ese error. Resulta que tengo 3 o 4 tablas con un id y de tipo serial y con su pk asignada. En una de ellas al hacer un insert, me sale ese error pero en todas las demas me deja insertar los datos correctamente sin tener que incrementar yo el id.

No he creado ninguna secuencia ni nada.

No entiendo que es lo que pasa..es unos me funciona y en otro no...:S

Podrían ayudarme por favor? Lo necesito!!

Gracias!!
  #4 (permalink)  
Antiguo 18/03/2010, 06:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: tabla en postgres no se auto-incrementa con el BigSerial

Ya lo he solucionado era que la secuencia me empezaba en un id que no era el ultimo de la tabla. Creo que lo mismo que a mar_y_sol.

Saludos!

Etiquetas: tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:59.