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

Validar Fecha en un trigger

Estas en el tema de Validar Fecha en un trigger en el foro de Mysql en Foros del Web. Holas, tengo q hacer un trigger q se ejecute al final de cada inicio de cada mes, pero para ello requerio validar la fechas y ...
  #1 (permalink)  
Antiguo 15/08/2008, 09:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Exclamación Validar Fecha en un trigger

Holas, tengo q hacer un trigger q se ejecute al final de cada inicio de cada mes,
pero para ello requerio validar la fechas y es alli mi problema:

CREATE TRIGGER trigger_posiciones AFTER INSERT ON mitabla
FOR EACH ROW
BEGIN
DECLARE @fecha AS DATETIME = concat(YEAR(now()),'-',MONTH(now()),'-','01 00:00:00');

IF now() > @fecha THEN
delete from mitabla where fecha< @fecha;
END IF;
END;

Es decir al inicio de cada mes debo borrar los del mes pasado. Es muy urgente, espero puedan ayudarme. gracias
__________________
Veo de todo un poco, pero siempre tengo mis favoritos xD. No subestimen a Flash!
  #2 (permalink)  
Antiguo 15/08/2008, 12:01
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, 4 meses
Puntos: 2658
Respuesta: Validar Fecha en un trigger

Si lo quieres hacer es que una tarea se ejecute al inicio de cada mes, el problema no lo debes resolver con un trigger. En todo caso con un store procedure que LA APLICACION deberá invocar al inicio del mes.
Un trigger es una tarea que se ejecuta ante un evento SOBRE UNA TABLA, siendo estos INSERT, DELETE o UPDATE., con lo que el trigger que pones se disparará con cada INSERT que hagas a la tabla.

De hecho, tampoco resultará como lo has escrito, por cuanto que solamente si el insert en cuestión entra EXACTAMENTE a las 00:00:00 de ese primer día, tendrá efecto. Si entra un segundo después no sucederá nada.
El asunto no está bien planteado.

Si lo que quieres es un borrado automático, debes programarlo en la aplicación, insisto, no en un trigger.
Otra opción es que uses algún scheduler y manejes eso como proceso batch, dentro del sistema operativo... Cosa que es lo que habitualmente se hace.
__________________
¿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 14:14.