Ver Mensaje Individual
  #9 (permalink)  
Antiguo 25/05/2009, 23:11
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como hacer este trigger????

Hola huesos, gracias me resulto, pero ahora tengo un problema con otro trigger q es el de visita/visitante lo q pasa es q tengo una relacion fuerte entre el niño y el visitante donde se me genera la tabla visita, la tabla visitante tiene los campos:

|TABLA VISITANTE|

|id_visitante| |nombre_visitante| |apellido_visitante| |etc...|

y la tabla visita tiene los siguientes campos:
|TABLA VISITA|

|id_visitante| |id_nino| |etc...|

y tengo los siguientes triggers q supuestamente me elimina al visitante y la visita antes de eliminar al niño estos son:
trigger para eliminar visitante antes de visita:
Código:
Create or replace function eliminar_visitante() returns trigger as

'
declare
Begin






delete from visitante where old.id_visitante=id_visitante;
return old;
End;
'

language 'plpgsql';

create trigger borrar_antes_de_visita before
delete on visita
for each row execute procedure eliminar_visitante();
y el ara eliminar visita lo tengo con el trigger en donde elimino todos los otros datos del niño, pero lo q pasa q las otras tablas solo tienen el id de la misma y el id del niño ejemmplo; la tabla educacion tiene id_educacion e id_nino, y la tabla visitante tiene solo id visitante es por eso q cuando ejecuto el trigger no me elimina pq no encuentra el id_visitante eni el de visita, el trigger en cuestion es este:
Código:
Create or replace function eliminar_nino() returns trigger as

'
declare
Begin
delete from actividad where old.id_nino=id_nino;

delete from beneficio where old.id_nino=id_nino;

delete from educacion where old.id_nino=id_nino;

delete from nino_vive_en where old.id_nino=id_nino;

delete from salud where old.id_nino=id_nino;

delete from trabajo where old.id_nino=id_nino;

delete from visita where old.id_nino=id_nino;


return old;
End;
'

language 'plpgsql';

create trigger borrar_antes_de_nino before
delete on nino
for each row execute procedure eliminar_nino();
ese es el trigger pero no me elimina pq me dice q id_visita aun sigue presente en la tabla visitante, y no se en q esta fallando.... porfavor amigos ruego me guien esto de los triggers me tienen desesperado!!! porfavor ayuda!!!!!! de antemano gracias... bye