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

Trigger before delete

Estas en el tema de Trigger before delete en el foro de Mysql en Foros del Web. Buenos días, estoy haciendo un trigger before delete en una tabla dónde me interesa que borre registros de otra tabla. tabla_1: id_tab_1, descripcion, tab_2 tabla_2: ...
  #1 (permalink)  
Antiguo 30/04/2012, 03:48
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 19 años, 2 meses
Puntos: 0
Trigger before delete

Buenos días,

estoy haciendo un trigger before delete en una tabla dónde me interesa que borre registros de otra tabla.



tabla_1: id_tab_1, descripcion, tab_2

tabla_2: id_ta_2, descripcion


Código PHP:
DELIMITER //
CREATE TRIGGER mi_trigger_before_delete
BEFORE DELETE ON bd_mrw
.tabla_2
FOR EACH ROW BEGIN

   DELETE tabla_1 WHERE tab_2
=OLD.id_ta_2;

END;
//
DELIMITER 

Pero no me funciona, me aparece el siguiente error: "Not allowed to return a result set from a trigger"

NOTA: no quiero utilizar claves foranas.


Un saludo y gracias.
  #2 (permalink)  
Antiguo 30/04/2012, 08:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Trigger before delete

Dos cosas:
1) El mensaje me hace pensar que el codigo que estás posteando no está completo. ¡Omitiste alguna parte?
2) ¿Existe algún trigger definido en la Tabla_2?

Lo que te dice, para mejor claridad, es que el trigger contiene un SELECT en alguna parte, los cuales están prohibidos en los TRIGGER.

¿Por qué no quieres usar FK?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: delete, registros, tabla, 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 13:15.