16/11/2012, 12:51
|
| 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: store procedure time servidor Ahora estás declarando mal las variables.
No es lo mismo en MySQL poner @tiempo que simplemente tiempo. Son dos variables diferentes.
La primera es una variable de global y de sesión, la segunda es local de SP o SF.
Por otro lado, como te dije, no estás declarando ni cargando las variables dateStart y dateFinish, que en ese contexto no son los campos de la tabla, sino variables.
Lo que no me queda claro si entendiste, es que no puedes llamar el SP desde unTRIGGER, por lo cual si se produce un INSERT en ta tabla de eventos, no puedes disparar el SP en automático. tendrías que hacerlo llamándoolo luego de ejecutar el INSERT, si el mismo es exitoso...
Ahora bien, mirando con más cuidado, hay algunos detalles más:
- La consulta te devuelve N registros, siendo N el total de registros existentes en la primera tabla.
- Para poder evaluar eso, no se puede hacer con variables simplemente, sino que debes implementar un CURSOR y un LOOP o REPEAT, que permita recorrer uno a uno los resultados y proceder en consecuencia.
- Para implementar un CURSOR, también debes usar un HANDLER de tipo CONTINUE, y evitar excepciones no controlables.
- Debes recoger también el ID del registro que se procesa, para poder usar lo en las operaciones DML (UPDATE o INSERT) que resuelves en el IF;
- Los IFs también están mal escritos, porque en MySQL esas estructuras se manejan de otro modo.
Te sugiero que te fijes en las FAQs de MySQL, donde hay un post donde se explica cómo se hace todo eso.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque)
Última edición por gnzsoloyo; 16/11/2012 a las 14:42 |