Marca de tiempo de actualización de MySQL en LOAD DATA INFILE IGNORE

He escrito un par de scripts que cargan datos de conmutadores en mi base de datos MySQL.

Tengo un interruptor de tabla donde agregué una columna "última actualización". El interruptor de la mesa se ve así:

create table switch (name varchar(15), swversion varchar(15), bootversion varchar(15), serialnumber varchar(30), rootbridge varchar(10), address varchar(20), switch_id MEDIUMINT NOT NULL AUTO_INCREMENT, lastupdate DATE , PRIMARY KEY(switch_id));

He agregado una marca de tiempo predeterminada para todas las filas con el siguiente comando:

ALTER TABLE switch MODIFY lastupdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL

Estoy utilizando LOAD DATA INFILE IGNORE para cargar mis datos en la dabatase con mi script "cargar datos". Ahora quiero implementar un comando MySQL en mi secuencia de comandos "cargar datos" que actualice automáticamente la marca de tiempo para cada fila que se cargó (cambiada o no) en el cambio de tabla.

¿Alguna sugerencia?

preguntado el 16 de abril de 13 a las 08:04

Intenta usar LOAD DATA INFILE IGNORE ... SET lastupdate=NOW() -

No funciona, cuando las filas están duplicadas, omite SET lastupdate=NOW() -

Si está utilizando IGNORE las filas de entrada de palabras clave se omiten. ¿No lo es? O cuéntenos sobre los metadatos de la tabla y cómo implementa LOAD DATA INFILE. -

Nvm, lo resolví usando una tabla temporal para poder deshacerme de IGNORE y aún así poder evitar que mis ID no se incrementen demasiado automáticamente. ¡Gracias de cualquier manera! -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.