Tengo un script PHP que importa secuencias de comandos sql en una base de datos MySQL 5. Cada script contiene nada más que UPDATE
declaraciones que cada actualización 1 fila en una tabla (MyISAM).Actualizar la marca de tiempo de MySQL incluso si los datos de la fila no han cambiado
Si una fila no ha estado dentro de uno de estos scripts durante 2 días, debe eliminarse. La tabla tiene una columna de marca de tiempo. Sin embargo, cuando la instrucción UPDATE no cambia ninguna columna, la marca de tiempo no se actualiza y no tengo forma de saber si la fila estaba en el archivo de importación o no. ¿Hay alguna manera de forzar esta actualización de la marca de tiempo, incluso si no hay cambios en los datos?
EDITAR: Otra aclaración.
Los archivos de importación son archivos comprimidos que contienen aproximadamente 450,000 filas, cada fila es 1 instrucción UPDATE.
Aquí está la función PHP que maneja los archivos de importación:
private function ImportFile($filename) {
$importfile = gzopen($filename, "r");
if (!$importfile) {
throw new Exception("Could not open Gzip file " . $filename);
}
while (!gzeof($importfile)) {
$line = gzgets($importfile, 4096);
if (!$line) {
throw new Exception("Error reading line number $line Gzip file $filename");
}
if (strlen(trim($line)) > 0) {
$this->DB->Query($line);
}
}
gzclose($importfile);
}
Hola, realmente no entiendo tu problema, ¿puedes aclararlo con algún código, una muestra de los archivos de ACTUALIZACIÓN o algo así? – SubniC