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

TRIGGER (self-updated)

Estas en el tema de TRIGGER (self-updated) en el foro de Mysql en Foros del Web. Saludos . . . Antes de hacer mi pequeña pregunta me dí una vuelta por las FAQs (como debe ser), en vista de que mi ...
  #1 (permalink)  
Antiguo 02/03/2009, 19:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 82
Antigüedad: 15 años, 8 meses
Puntos: 4
TRIGGER (self-updated)

Saludos . . .

Antes de hacer mi pequeña pregunta me dí una vuelta por las FAQs (como debe ser), en vista de que mi búsqueda no resultó exitosa . . . me atrevo a recurrir a sus sabias palabras . . .

Resulta que éste trigger:
Código sql:
Ver original
  1. DELIMITER |
  2. CREATE TRIGGER LastLogin AFTER UPDATE ON Usrs
  3. FOR EACH ROW
  4. BEGIN
  5. UPDATE usrs
  6. SET lastlogin = thislogin;
  7. END
  8. |
  9. DELIMITER ;

me arroja el sig. error:
Can't update table 'clientes' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

He intentado repararlo sustituyendo el AFTER por el BEFORE y añadiendo NEW a los campos asignados . . . pero no logro repararlo . . . que sugieren ? ? ?
Estoy muy lejos de la solución ? ? ?

Gracias por su tiempo . . .
Nos estamos leyendo ! ! !
  #2 (permalink)  
Antiguo 03/03/2009, 04:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: TRIGGER (self-updated)

Error conceptual básico: No puedes hacer un trigguer que invoque un evento de entrada/actualización contra la misma tabla que dispara el trigger en ejecución... Porque no se pueden soportar triggers recursivos.

Mejor haz esto:
1. Explicate mejor qué es lo que quieres hacer.
2. Postea cómo es la estructura de la tabla y cómo la sentencia que está disparando el trigger.

Recién allí estaremos seguros de qué es lo que intentas hacer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 12:01.