12/02/2009, 09:55
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 11 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!!!!! |