Script para importar datos de CSV a tabla de BBDD en remoto. Todo en .sql Conexión a BBDD incluida

EL tema es que necesito generar un .sql para que una tarea programada lo ejecute. Debe importar unos registros de un CSV en una tabla que se encuentra en otro equipo y no encuentro la forma de hacer la conexión a la BBDD en el .sql

El servidor ( por si se necesita esta información ) es Windows.

Muchas gracias por adelantado. Llevo 3 días investigando y no doy con el tema

Respuesta
1

¿Y cuál es el problema? ¿Qué no conecta? ¿Qué no sabes crear el fichero SQL desde el csv? ¿Qué servidor es? ¿sql server o mysql?.

Con php o python puedes mandar sqls directamente... dinos que has hecho y vemos.

El problema es....que no sé hacerlo. El servidor es un MySQL. Se generar un .SQL que coja un CSV de una ruta y añada esos registros a la tabla de mi BBDD pero no sé cómo podría hacer ese .SQL de tal forma que pudiera lanzarlo desde otro equipo . Es decir, que se conectará a la BBDD, abriera la tabla y añadiera registros cada x tiempo. Ejemplo, una tarea programada lanzado desde un equipo remoto dentro de mi red,eso si yy que se conecta a mí servidor MySQL, y añade registros a una tabla de mi BBDD.

A lo único que llegó es a generar un SQL que actualice registros que coge de un .CSV. pero nada mas.

Muchas gracias

Los pasos son los siguientes...

1) Leer el csv, línea por línea

2) Leer los campos de la línea y generar una sentencia sql valida, eso es muy fácil de comprobar porque puedes hacer un echo $sql y ver si esta todo bien.

3) Lanzar la petición al servidor, la verdad es que esto no es difícil, en esta web tienes un ejemplo: http://www.phpknowhow.com/mysql/php-mysql-insert/ sino hay muhos por ahi. Necesitaras tener los modulos de php-mysql para qeu funcione claro.

¿Y es posible lanzar el .sql que genero con una tarea programada de Windows o un Script que lo ejecute cada por tiempo?

Si por ejemplo tengo cargadatos.sql con esta información

LOAD DATA INFILE 'C:\PruebasMysql\PruebaCSV.csv'
INTO TABLE bbdd_pruebas.tablacsv FIELDS TERMINATED BY ','
IGNORE 1 LINES
(Cliente, Estado, Mes);

¿Meter este .sql en algún script o .bat para que una tarea programada la ejecute cada por tiempo?

Más fácil aun, puedes hacer una tarea programada del fichero php que hagas... del tipo, correo este comando cada hora:

php c:/importarFicheroBaseDatos.php

Es la forma habitual de hacer backups o cosas así.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas