From: | "irlan" <irlan(dot)grangel(at)facinf(dot)uho(dot)edu(dot)cu> |
---|---|
To: | "Alvaro Herrera" <alvherre(at)commandprompt(dot)com> |
Cc: | "lista_postgres" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda herencia2 |
Date: | 2006-03-31 20:40:09 |
Message-ID: | 003a01c65503$4d509f70$46021a0a@estudiante |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Si claro disculpen
realmente la raiz del problema es que no me deja crear un foreing key .
pues estas tablas todas tienen relacion con estudiante que ademas es padre
de estudiante nacional y estudiante extranjero
Aqui van las tablas
CREATE TABLE evaluacion_final
(
id serial NOT NULL,
id_estudiante int4 NOT NULL,
id_asignatura int4 NOT NULL,
id_plan int4 NOT NULL,
nota_final int4 NOT NULL,
CONSTRAINT evaluacion_final_pkey PRIMARY KEY (id),
CONSTRAINT evaluacion_final_fk1 FOREIGN KEY (id_asignatura) REFERENCES
fn_asignatura (id) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT evaluacion_final_fk2 FOREIGN KEY (id_plan) REFERENCES plan (id)
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH OIDS;
ALTER TABLE evaluacion_final OWNER TO postgres;
Aqui no me permite crear el foreign key me dice esto
Warning: pg_query() [function.pg-query]: Query failed: ERROR: insert or
update on table "evaluacion_final" violates foreign key constraint "e"
DETAIL: Key (id_estudiante)=(2292) is not present in table "estudiante".
Lo mismo me da con las demas.
CREATE TABLE extraordinario
(
id int4 NOT NULL DEFAULT nextval('public.evaluacion_final_id_seq'::text),
id_estudiante int4 NOT NULL,
id_asignatura int4 NOT NULL,
id_plan int4 NOT NULL,
nota_final int4 NOT NULL,
nota_extraordinario int4 NOT NULL
) INHERITS (evaluacion_final)
WITH OIDS;
ALTER TABLE extraordinario OWNER TO postgres;
CREATE TABLE convocatoria_especial
(
id int4 NOT NULL DEFAULT nextval('public.evaluacion_final_id_seq'::text),
id_estudiante int4 NOT NULL,
id_asignatura int4 NOT NULL,
id_plan int4 NOT NULL,
nota_final int4 NOT NULL,
nota_extraordinario int4 NOT NULL,
nota int4 NOT NULL
) INHERITS (extraordinario)
WITH OIDS;
ALTER TABLE convocatoria_especial OWNER TO postgres;
Ademas me da este error .
Warning: pg_query() [function.pg-query]: Query failed: ERROR: null value in
column "nota_final" violates not-null constraint
Yo estuve leyendo la documentacion de postgres y dice que hay que tener
cuidado a la hora de usar la herencia y las constraints pero aqui no veo
porque..
Cualquier link o ayuda se los agradeceria ...
Irlan
----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "irlan" <irlan(dot)grangel(at)facinf(dot)uho(dot)edu(dot)cu>
Cc: "lista_postgres" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Friday, March 31, 2006 5:58 AM
Subject: Re: [pgsql-es-ayuda] Ayuda herencia2
> irlan escribió:
>> Saludos soy nuevo en la lista y necesito una ayuda en un problema que de
>> seguro tengo errores conceptuales , aqui va.
>> Tengo 3 tablas
>> evaluacion_final
>> extraordinario hereda de evaluacion_final
>> convocatoria_especial hereda de extraordinario
>> El problema es que cuando inserto en una tabla hija me borra los campos
>> de la tabla padre.
>
> Borra los campos? No entiendo. Veamos un ejemplo (i.e. cut&paste de
> una sesion psql demostrando el problema).
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>
From | Date | Subject | |
---|---|---|---|
Next Message | Grover Navia | 2006-03-31 20:52:57 | Dar formato literal a las fecha |
Previous Message | deepthroat | 2006-03-31 20:18:21 | restaurar vista |