Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/02/2009, 09:55
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Delete en cascada

Hola seyko bueno, tengo estre trigger q me elimina al padre madre y familia pero sin condicion es decir sin comprobar si la familia tiene mas hermanos o no el trigger es este:

Create or replace function eliminar_nino() returns trigger as

'
declare
Begin



delete from madre where old.id_madre=id_madre;
delete from padre where old.id_padre=id_padre;
delete from familia where old.id_nino=id_nino;
return new;
End;
'

language 'plpgsql';

create trigger eliminar_nino before
delete on nino
for each row execute procedure eliminar_nino();


lo q quiero yo y lo q no se como hacer dentro de este trigger como comprobar si el niño tiene mas hermanos para q si el niño tienes mas hermanos solo se elimine al niño q se desee y no a su familia completa q condicion debo poner???, la tabla familia la tengo asi: id_familia, familia_primer_apellido, familia_segundo_apellido (estas 3 son primary key) y id_nino, id_padre, id_madre (foreign key)

las key id_familia, id_nino, id_madre e id_padre las tengo komo integer y las autoincremento por codigo php

mi pregunta entonces como lo hago para comprobar si el niño es hijo unico o no y lo otro si no fuese hijo unico como podria borrar solo el id del niño y no los datos de toda su familia ya q id_nino en la tabla familia es clave foranea??? porfavor ayudaa amigos .... de antemano gracias!!!!!