Is there a way to import multiple csv files at the same time into a MySQL database? Some sort of batch import?
I\'m on Mac OSX running a MAMP server.
I have
You could use a shell script to loop through the files (this one assumes they're in the current directory):
#!/bin/bash
for f in *.csv
do
mysql -e "load data infile '"$f"' into table my_table" -u username --password=your_password my_database
done
In python you can use d6tstack which makes this simple
import d6tstack
import glob
c = d6tstack.combine_csv.CombinerCSV(glob.glob('*.csv'))
c.to_mysql_combine('mysql+mysqlconnector://usr:pwd@localhost/db', 'tablename')
It also deals with data schema changes, creates table and allows you to preprocess data.
For windows User use this batch
echo off
setlocal enabledelayedexpansion
FOR %%f IN ("*.csv") DO (
set old=%%~dpnxf
set new=!old:\=\\!
mysql -e "load data local infile '"!new!"' IGNORE into table email_us.business COLUMNS TERMINATED BY ','" -u root
echo %%~nxf DONE
)
d
for drive letter, p
for path
to file, n
for filename, x
for extension and f is file variableSteps: - Put that batch file in directory where all multiple csv files exist and named it as something.bat - run cmd.exe as adminstrator and call that something.bat file and enjoy importing...