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

[SOLUCIONADO] Insertar registro, dependiendo de la fecha

Estas en el tema de Insertar registro, dependiendo de la fecha en el foro de Mysql en Foros del Web. Buenas tardes, antes que nada agradezco a las personas que entren y se interesen en el post, y quisiera que cualquier persona pudiera dar su ...
  #1 (permalink)  
Antiguo 02/09/2014, 15:27
 
Fecha de Ingreso: abril-2014
Mensajes: 37
Antigüedad: 10 años
Puntos: 2
Pregunta Insertar registro, dependiendo de la fecha

Buenas tardes, antes que nada agradezco a las personas que entren y se interesen en el post, y quisiera que cualquier persona pudiera dar su sugerencia con respecto a esto, tenga un nivel básico o avanzado en mysql.

Explico:

Resulta que necesito crear un registro nuevo en una tabla, con respecto a una fecha almacenada en una tabla distinta, planteo gráficamente la situación:

Tablas:

equipos_plan cronograma
----------- -------------------
id int id int
serial varchar(50) fecha_tope datetime
procesado bool

Necesito que cuando la fecha actual llegue a la fecha tope de la tabla cronograma, se genere un nuevo registro en la tabla equipos.

Si no me explico bien, avisen. Gracias de antemano.
  #2 (permalink)  
Antiguo 02/09/2014, 16:00
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: Insertar registro, dependiendo de la fecha

Cita:
Necesito que cuando la fecha actual llegue a la fecha tope de la tabla cronograma, se genere un nuevo registro en la tabla equipos.
Eso requiere un proceso que cada X tiempo (supongamos, 1 día), se ejecute el insert correspondiente.
Se puede hacer tanto por job en un cron, como por EVENT, en MySQL (ver manual de referencia).

Sería algo parecido a esto:

Código SQL:
Ver original
  1. CREATE EVENT insertar_producto
  2.     ON SCHEDULE
  3.     EVERY 1 DAY
  4. DO
  5. BEGIN
  6.     IF (SELECT COUNT(1) FROM cronograma WHERE DATE(fecha_tope) = CURDATE()) = 0 THEN
  7.         INSERT INTO equipos_plan(serial, procesado)
  8.         VALUES(NULL, FALSE);
  9.     END IF;
  10. END
Nota: Es sólo un bosquejo teórico, no hagas Copy+Paste porque puede no funcionar.

Un detalle es que no nos estás diciendo de dónde toma los valores del campo "serial", por lo que probablemente se trate de un caso de INSERT... SELECT...
__________________
¿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: php, procedimientos
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 04:27.