MySQL - Actualizar tabla a partir de CSV

 
Vista:
sin imagen de perfil

Actualizar tabla a partir de CSV

Publicado por [email protected] (2 intervenciones) el 10/06/2018 23:26:35
Buenas noches,

En primer lugar me gustaría presentarme, soy nuevo en este foro. Soy ingeniero industrial y estoy empezando a hacer mis "pinitos" en programación gracias a la ayuda de este foro.
Les voy a contar mi consulta. En el archivo adjunto, hay un csv donde se registran los eventos de una máquina. Mi idea es poder cargar estos datos de manera automática a una tabla de MySQL. Este log se genera durante el funcionamiento de la máquina, por lo que me gustaría que la carga a la base de datos fuese "casi" en tiempo real. A día de hoy ya he conseguido subir manualmente el csv con la instrucción LOAD DATA FROM CSV y REPLACE, asignando la key al campo ID. Mi intención es que se guarde en base de datos el último valor de cada ID. Los encabezados del csv adjunto son: FECHAYHORA, USUARIO, ID, DESCRIPCIÓN, VALOR.

Para resumir, necesito que únicamente haya una fila por cada ID que registre el último valor y se actualice automático con el CSV.

Gracias,
Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Actualizar tabla a partir de CSV

Publicado por xve (1151 intervenciones) el 11/06/2018 07:56:54
Hola Alejandro, la única manera que se me ocurre, es que insertes tu archivo CSV con LOAD DATA a una tabla temporal, la cual contiene un trigguer que va actualizando la tabla real insertando si no existe el id o actualizandolo, de esta manera siempre tendrás el ultimo ID en la tabla real.
Una vez finalizado el proceso, vacías la tabla temporal para permitir añadir otro archivo CSV

No se si te puede servir... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Actualizar tabla a partir de CSV

Publicado por [email protected] (2 intervenciones) el 11/06/2018 08:22:46
Hola xve,

Gracias por la rápida respuesta. Había leído en varios sitios cómo hacerlo. Adjunto una pequeña guía por si a alguien le sirve:
http://yanez.pro/blog/mysql/actualizar-el-valor-de-la-base-de-datos-de-un-campo-acf-en-wordpress/

Ahora me surge una duda...siguiendo este segmento de código:

fechahora;user;ID;description;value
2016/12/16 18:07:21;9;32;Override;0
2016/12/16 18:07:30;9;32;Override;5
2016/12/16 18:08:18;9;32;Override;3
2016/12/16 18:09:25;9;32;Override;5
2016/12/16 18:09:33;9;32;Override;0
2016/12/16 18:09:34;9;32;Override;5

Con cada acceso de lectura al csv me gustaría actualizar el id correspondiente de la tabla con el último valor. Según este segmento, la tabla quedaría:

fechahora;user;ID;description;value
2016/12/16 18:07:21;9;32;Override;5 (Último valor leído para id 32)

Ignorando los valores anteriores, sólo interesa el último valor de override. Al final tendríamos una tabla con todos los ID sobre los cuáles se irán actualizando la caolumna valores.

Gracias de nuevo.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar