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

[SOLUCIONADO] Trigger que se actulice según la fecha sin hacer insert, ni update ni delete

Estas en el tema de Trigger que se actulice según la fecha sin hacer insert, ni update ni delete en el foro de Mysql en Foros del Web. Buenas Tardes Amigos de foros del Web saludos a Golonzoyo (Moderador) y Leonardo Josúe (Colaborador ), en ayudas Pasadas me han colaborado mucho, y todos ...
  #1 (permalink)  
Antiguo 04/07/2013, 12:54
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 13 años, 2 meses
Puntos: 0
Trigger que se actulice según la fecha sin hacer insert, ni update ni delete

Buenas Tardes Amigos de foros del Web saludos a Golonzoyo (Moderador) y Leonardo Josúe (Colaborador ), en ayudas Pasadas me han colaborado mucho, y todos lo integrantes de este foro por ser tan disponibles

Hoy mi problema es el siguiente, tengo una tabla llamada préstamo que tiene los campos:
Código MySQL:
Ver original
  1. idprestamo, idusuario, fecha_prestamo, esefectivo
Cuando ingreso los datos es normal que los datos en el campo esfectivo queden en '0' porque es su valor por defecto ya que el tipo de dato es un enum('0','1'), pero si un registro tiene en el campo fecha_prestamo una fecha que comparada con el dia actual sea mayor a 3 dias, este campo se debe actualizar automáticamente en '1', pensé en un trigger que se actualice con una instrucción como esta:
Código MySQL:
Ver original
  1. update prestamos set esfectivo='1'  where esefectivo = '0' and DATEDIFF(NOW(),fecha_prestamo) > 3
pero tengo entendido que los triggers se ejecutan después de hacer una inserción, actualización o eliminación de una tabla porque se almacenan en ellas , pero no tengo como un ejemplo claro para lograr lo que necesito, porque los que he visto hasta ahora necesitan tener primero la instrucción insert , update o delete, y mi idea es que eso se haga automáticamente según la fecha: me hago entender hay un registro así

Idprestamo =5 , idusuario = 456211, fecha_prestamo = 2013-07-04, esefectivo=’0’

cuando llegué el día 2013-07-08 el campo esefectivo se actualizaría el solo automaticamente en‘1’.

No sé si esto sea Posible.

Agradezco cualquier ayuda que me puedan prestar.

Mil Gracias
  #2 (permalink)  
Antiguo 04/07/2013, 15:50
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: Trigger que se actulice según la fecha sin hacer insert, ni update ni dele

Creo que te puede servir lo que comentaron en un post anterior del foro. Hablan de los Events o tambien llamados Temporary Triggers que viene a ser el equivalente de Agent Job de Oracle como comenta digdig en el siguiente post:
http://www.forosdelweb.com/f86/como-...nsulta-474302/

Podrías programarlo para verificar los valores y actualice la tabla.

Un saludo
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es
  #3 (permalink)  
Antiguo 04/07/2013, 17:14
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 que se actulice según la fecha sin hacer insert, ni update ni dele

Exactamente, ese es uno de los caminos.
No se puede hacer un TRIGGER que no se dispare por un INSERT / UPDATE / DELETE. Eso desde el vamos, porque para eso precisamente se crearon. Cualquier tarea "automática", que no requiera un evento de ABM a la tabla, no es un TRIGGER, es otra cosa.
Lo que quieres se hace (y no sólo en MySQL), por dos caminos: O un SP que se ejecute como tarea programada o job, o por un EVENT desde la base (en otros se los llama JOBs).
En cualquier caso, no es un TRIGGER...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 05/07/2013, 07:43
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Trigger que se actulice según la fecha sin hacer insert, ni update ni dele

Hola zarwar y gnzsoloyo muchas gracias a ambos, gracias gnzsoloyo porque me terminas de aclarar lo que pensaba hacer y ya se para la próxima, por eso seguí la sugerencia de zarwar y cree un evento al final el código del evento me quedo de esta forma:

Código MySQL:
Ver original
  1. CREATE DEFINER =  `root`@`localhost` EVENT `actualiceprestamos`
  2.             ON SCHEDULE EVERY 1 DAY
  3.             STARTS '2013-07-05 00:00:01'
  4.             ON COMPLETION NOT PRESERVE ENABLE DO
  5.             UPDATE prestamos SET esfectivo='1'  WHERE esefectivo = '0' AND DATEDIFF(NOW(),fecha_prestamo) > 3

Esto logra hacer lo que quiero: ya iniciando cualquier día se actualiza la tabla mil gracias por su valiosa ayuda.

Etiquetas: campo, delete, fecha, insert, registro, según, tabla, trigger, update
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 01:50.