Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2009, 14:16
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 17 años
Puntos: 0
Problema con el siguiente trigger

Hola amigos, aca yo de nuevo, tengo un problema al querer eliminar a un niño de mi bd, yaa q dicho niño pertenece a una familia (tabla) y tb tengo otra tabla llamada familia por hijos. el problema es q en la tabla familia tengo los siguientes campos id_familia, rut_madre y rut_padre, donde rut_padre es pk de la tabla padre y rut_madre es pk en la tabla madre. Mi problema ocurre cuando quiero eliminar a un niño ya q al eliminarlo, me da problemas el trigger q tengo para eliminarlo de la familia, ya q me mda este error, ERROR: record "old" has no field "id_familia"
CONTEXT: PL/pgSQL dunction "eliminar_familia" line 7 at SQL staement,.
Ese es el error q me manda al eliminar a un niño, y creo q se debe a q para eliminar al niño el unico valor q traigo a los triggers es el id del niño, y ese es mi problema no se como traer el id de la familia del niño como dato old para q me haga el delete en familia ya q al hacer el old.id_familia este viene vacio y no se como traerlo, aqui les dejo mi trigger:
Código:
Create or replace function eliminar_familia() returns trigger as

'
declare
Begin




delete from familia where old.id_familia=id_familia;



return old;
End;
'

language 'plpgsql';

create trigger borrar_familia_antes_de_nino after
delete on nino
for each row execute procedure eliminar_familia();
ahi en el where old.id_familia=id_familia ahi esta el error ya q old.id_familia viene vacio pero no se como poder capturar el id_familia a la q pertenece el niño... porfavor amigos ayudaaa... se los agradeceria muchoo.... es de urgencia.... de antemano gracias.... bye