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

Hola huesos52,

En primera agradecerte tu tiempo en ejecutar el script y hacer pruebas.

en efecto, no da problemas porque los inserts se hacen en la tabla padre, pero si agrego una materia 8 desde la tabla hija:

Código SQL:
Ver original
  1. INSERT INTO tb_ing_materia (mat_materia) VALUES('Materia8');
  2. SELECT * FROM tb_mat_materia;

Y luego trato de hacer el insert con id=8:

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', 8, 14, 1, 1, '2016-02-09 17:14:58', '2016-02-09 17:14:58');


Devuelve el 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)=(8) no está presente en la tabla «tb_mat_materia».


Por ahí he visto que los checks y llaves foráneas como que no funcionan bien cuando se combina con herencia, la única forma que no me de error es eliminando el constrain de la llave foránea.

Creo que es error de concepto mío que no estoy aplicando bien al parecer..