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

Problema con el siguiente trigger

Estas en el tema de Problema con el siguiente trigger en el foro de PostgreSQL en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/05/2009, 14:16
 
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
  #2 (permalink)  
Antiguo 28/05/2009, 07:35
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años, 6 meses
Puntos: 43
Respuesta: Problema con el siguiente trigger

Creo que el error está en este código:
delete from familia where old.id_familia=id_familia;

Debería ser asi:

delete from familia where id_familia=OLD.id_familia;
return OLD;

Avisame si te funciona.
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 07:01.