Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2016, 11:53
GreenBird
 
Fecha de Ingreso: octubre-2015
Mensajes: 17
Antigüedad: 9 años, 2 meses
Puntos: 0
Problema al insertar llave foránea

Hola amigos,

Tengo las siguientes tablas:


Código SQL:
Ver original
  1. CREATE TABLE tb_mat_materia
  2. (
  3.   mat_id serial NOT NULL,
  4.   mat_materia CHARACTER VARYING(250),
  5.   CONSTRAINT tb_mat_materia_pkey PRIMARY KEY (mat_id)
  6. )
  7. WITH (
  8.   OIDS=FALSE
  9. );
  10. ALTER TABLE tb_mat_materia
  11.   OWNER TO admin;


Código SQL:
Ver original
  1. CREATE TABLE tb_evals_evaluaciones
  2. (
  3.   evals_id serial NOT NULL,
  4.   evals_eval_id INTEGER,
  5.   evals_fecha DATE,
  6.   evals_mat_id INTEGER,
  7.   evals_per_id INTEGER,
  8.   evals_prog_id INTEGER,
  9.   evals_hr_id INTEGER,
  10.   created_at TIMESTAMP(0) WITHOUT TIME zone NOT NULL,
  11.   updated_at TIMESTAMP(0) WITHOUT TIME zone NOT NULL,
  12.   CONSTRAINT tb_evals_evaluaciones_pkey PRIMARY KEY (evals_id),
  13.   CONSTRAINT tb_evals_evaluaciones_evals_hr_id_fkey FOREIGN KEY (evals_hr_id)
  14.       REFERENCES tb_hr_horario (hr_id) MATCH SIMPLE
  15.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  16.   CONSTRAINT tb_evals_evaluaciones_evals_mat_id_fkey FOREIGN KEY (evals_mat_id)
  17.       REFERENCES tb_mat_materia (mat_id) MATCH SIMPLE
  18.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  19.   CONSTRAINT tb_evals_evaluaciones_evals_per_id_fkey FOREIGN KEY (evals_per_id)
  20.       REFERENCES tb_per_personas (per_id) MATCH SIMPLE
  21.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  22.   CONSTRAINT tb_evals_evaluaciones_evals_prog_id_fkey FOREIGN KEY (evals_prog_id)
  23.       REFERENCES tb_prog_programas (prog_id) MATCH SIMPLE
  24.       ON UPDATE NO ACTION ON DELETE NO ACTION
  25. )
  26. WITH (
  27.   OIDS=FALSE
  28. );
  29. ALTER TABLE tb_evals_evaluaciones
  30.   OWNER TO admin;


Pero al momento de ejecutar la siguiente instrucción:

Código SQL:
Ver original
  1. INSERT INTO tb_evals_evaluaciones (evals_eval_id,evals_fecha,evals_mat_id,evals_per_id,evals_prog_id,evals_hr_id,updated_at,created_at)
  2. VALUES (1, '10-02-2016', 7, 14, 1, 1, '2016-02-09 17:14:58', '2016-02-09 17:14:58')

Me devuelve el siguiente error:

Código SQL:
Ver original
  1. ERROR:  inserción o actualización en la tabla «tb_evals_evaluaciones» viola la llave FORánea «tb_evals_evaluaciones_evals_mat_id_fkey»
  2. DETALLE:  La llave (evals_mat_id)=(7) no está presente en la tabla «tb_mat_materia».

Aclaro que el registro con mat_id=7 sí existe en la tabla tb_mat_materia

El resto de las llaves foráneas que enlazan a otras tablas también ya tienen registros, por lo que solamente con estas dos me esta dando problemas y no sé a qué pueda deberse.

?