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

Error al insertar datos en una tabla con llave foranea

Estas en el tema de Error al insertar datos en una tabla con llave foranea en el foro de PostgreSQL en Foros del Web. Hola, tengo mi base de datos en PostgreSQL, con estas tablas CREATE TABLE persona ( cedula integer NOT NULL, nombre character(100), apellido character(100), telefono character(100), ...
  #1 (permalink)  
Antiguo 18/05/2011, 08:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Error al insertar datos en una tabla con llave foranea

Hola, tengo mi base de datos en PostgreSQL, con estas tablas

CREATE TABLE persona
(
cedula integer NOT NULL,
nombre character(100),
apellido character(100),
telefono character(100),
direccion character(100),
correo character(100),
cargo character(100),
CONSTRAINT persona_pkey PRIMARY KEY (cedula)
)
WITH (
OIDS=FALSE
);
ALTER TABLE persona OWNER TO postgres;


CREATE TABLE municipios
(
id_municipios integer NOT NULL,
nombre_municipio character(20),
CONSTRAINT municipios_pkey PRIMARY KEY (id_municipios)
)
WITH (
OIDS=FALSE
);
ALTER TABLE municipios OWNER TO postgres;


CREATE TABLE deportivo
(
id_deportivo integer NOT NULL,
persona_cedula integer NOT NULL,
municipios_id_municipios integer NOT NULL,
resolucion_deportivo character(100),
nombre_deportivo character(100),
CONSTRAINT deportivo_pkey PRIMARY KEY (id_deportivo),
CONSTRAINT deportivo_id_deportivo_fkey FOREIGN KEY (id_deportivo)
REFERENCES municipios (id_municipios) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT deportivo_id_deportivo_fkey1 FOREIGN KEY (id_deportivo)
REFERENCES persona (cedula) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE deportivo OWNER TO postgres;


Ya inserte los datos en municipio y en persona pero al insertar los datos en deportivo me sale un error:

INSERT INTO deportivo(persona_cedula,municipios_id_municipios, id_deportivo, resolucion_deportivo, nombre_Deportivo)
VALUES ('10246811','10','1 ',' res 123 ',' LIGA 1' );
INSERT INTO deportivo(persona_cedula,municipios_id_municipios, id_deportivo, resolucion_deportivo, nombre_Deportivo)
VALUES ('29613849','8','2 ',' res 124 ',' LIGA 2' );

y me muestra este error:

ERROR: inserción o actualización en la tabla «deportivo» viola la llave foránea «deportivo_id_deportivo_fkey1»
DETAIL: La llave (id_deportivo)=(1) no está presente en la tabla «persona».

********** Error **********

ERROR: inserción o actualización en la tabla «deportivo» viola la llave foránea «deportivo_id_deportivo_fkey1»
Estado SQL:23503
Detalle:La llave (id_deportivo)=(1) no está presente en la tabla «persona».

Me pueden ayudar?????
  #2 (permalink)  
Antiguo 18/05/2011, 10:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Error al insertar datos en una tabla con llave foranea

Estas creando mal la tabla deportivo. Estas haciendo las foreign key contra el campo id_deportivo.

Por la logica que veo, sería así:
Código SQL:
Ver original
  1. CREATE TABLE deportivo
  2. (
  3. id_deportivo INTEGER NOT NULL,
  4. persona_cedula INTEGER NOT NULL,
  5. municipios_id_municipios INTEGER NOT NULL,
  6. resolucion_deportivo CHARACTER(100),
  7. nombre_deportivo CHARACTER(100),
  8. CONSTRAINT deportivo_pkey PRIMARY KEY (id_deportivo),
  9. CONSTRAINT deportivo_id_deportivo_fkey FOREIGN KEY (municipios_id_municipios)
  10. REFERENCES municipios (id_municipios) MATCH SIMPLE
  11. ON UPDATE NO ACTION ON DELETE NO ACTION,
  12. CONSTRAINT deportivo_id_deportivo_fkey1 FOREIGN KEY (persona_cedula)
  13. REFERENCES persona (cedula) MATCH SIMPLE
  14. ON UPDATE NO ACTION ON DELETE NO ACTION
  15. )
  16. WITH (
  17. OIDS=FALSE
  18. );
  19. ALTER TABLE deportivo OWNER TO postgres;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 19/05/2011, 08:34
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Error al insertar datos en una tabla con llave foranea

Heey muchas gracias!! Era eso lo que pasaba!!!!!

Etiquetas: llave, tabla, foreignkey
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 17:32.