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

Problema con triggers

Estas en el tema de Problema con triggers en el foro de Mysql en Foros del Web. Hola a todos. Tengo un problema con unos disparadores que me tiene desesperado, llevo muvho intentandolo y no lo consigo, no debe ser muy complicado, ...
  #1 (permalink)  
Antiguo 01/07/2010, 12:15
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema con triggers

Hola a todos.

Tengo un problema con unos disparadores que me tiene desesperado, llevo muvho intentandolo y no lo consigo, no debe ser muy complicado, pero no doy con ello, a ver si me podeis ayudar.

A ver, tengo una entidad 'software(id_soft)', otra entidad 'so(so)' y están relacionadas mediante la entidad 'soportar(id_soft,so)'

Se pueden relacionar un mismo 'id_soft' con varios 'so'.

Necesito que al eliminar una de las relaciones, compruebe si el 'id_soft' está relacionado con algun 'so'. En caso de que no quede ninguna relación, no podría borrarse (o volver a insertarse mediante el trigger).

Gracias!
  #2 (permalink)  
Antiguo 01/07/2010, 14:00
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: Problema con triggers

¿Y lo que tienes hecho?
  #3 (permalink)  
Antiguo 01/07/2010, 15:38
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con triggers

pues lo que tengo hecho es lo siguiente:

DELIMITER|
CREATE TRIGGER SOPORTARTR BEFORE DELETE ON SOPORTAR FOR EACH ROW
BEGIN
IF (SELECT count(so) FROM soportar as sop WHERE id_soft=sop.id_soft group by so)<1
THEN INSERT INTO SOPORTAR values (OLD.id_soft,OLD.so);
END IF;
END;|
DELIMITER;


Con el 'Before' no me deja eliminar ninguna aparición y con el after me deja eliminar todas, así que supongo que lo que está mal es mi planteamiento general del trigger.
Mi idea era que si el número de apariciones es <1 pues que vuelva a insertarlo.
¿Se os ocurre alguna forma?

Etiquetas: trigger
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 22:07.