Pregunta

Tengo un pequeño problema y estoy seguro de que hay una manera más conveniente y sencilla de lograr la solución, ¡pero todas las búsquedas arrojan espacios en blanco en este momento!

Tengo una base de datos mysql que se actualiza periódicamente mediante una página php [a través de un trabajo cron], esto agrega o elimina entradas según corresponda.

Mi problema es que también necesito verificar si algún detalle [es decir, el número de teléfono o similar] de la entrada ha cambiado, pero no es posible hacer esto en cada llamada [no solo me parece excesivo, sino que también restringido por un límite de llamadas de API de terceros] Además, esta no es información crítica.

Entonces estaba pensando que sería mejor simplemente verificar una entrada por llamada de página e iterar a través de las filas/enteros con cada llamada de página sucesiva.

¿Cuál sería la mejor manera de hacer esto, es decir, realizar un seguimiento de qué entrada/fila de la tabla se debe verificar a continuación?

Tengo 2 ideas de cómo implementar esto:

1) La identificación de la fila actual podría guardarse en un archivo en el servidor [seguramente no es la mejor manera]

2) se agrega un campo booleano adicional [verificación] a la tabla, se establece en Verdadero en la primera entrada y en falso para todas las demás.Luego en cada página llámalo;Encuentra 'donde check = true' ejecuta la actualización de actualización en esta fila, 'set check = false' 'set [la fila siguiente] check = true'

¿Esta es la mejor manera de hacerlo o alguien tiene alguna sugerencia mejor?

gracias de antemano !

.k

PD perdón por el título

No hay solución correcta

Otros consejos

No estoy seguro si esto es una buena solución, pero si tengo que realizar actualizaciones masivas noche, voy a escribir los cambios a una nueva tabla en blanco, y luego hacer un SQL seleccionar para unirse a las tablas y dime donde son diferentes , y luego hacer otra actualización de SQL como

UPDATE table, temptable
SET table.col1=temptable.col1, table.col2=temptable.col2 ......
WHERE table.id = temptable.id;

Se puede almacenar la fecha y hora que se actualiza una fila de forma implícita utilizando ON UPDATE CURRENT_TIMESTAMP [ http://dev.mysql.com/doc/refman/5.0/en/timestamp.html] o explícitamente en su actualización SQL. Entonces todo lo que tiene que hacer es seleccionar la fila (s) con la marca de tiempo más bajo (utilizando ORDER BY y LIMIT) y tiene la siguiente fila de procesar. Siempre y cuando se asegure de que la marca de tiempo se actualiza cada vez.

por ejemplo. Digamos que utilizó el campo last_polled_on TIMESTAMP para almacenar el tiempo que listó una fila. Sus miradas de inserción como:

INSERT INTO table (..., last_polled_on) VALUES (..., NOW());

Sus actualización se ve así:

UPDATE table SET ..., last_polled_on = NOW() WHERE ...;

Y su selecto para la siguiente fila a las miradas de la encuesta como:

SELECT ... FROM table ORDER BY last_polled_on LIMIT 1;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top