如何将多个csv文件导入MySQL数据库

Lax*_*idi 13 mysql import phpmyadmin

有没有办法将多个csv文件同时导入MySQL数据库?某种批量导入?

我在运行MAMP服务器的Mac OSX上.

我有185个csv文件,我需要导入MySQL表.我可以使用phpMyAdmin的导入选项卡单独导入它们,但这需要很长时间.有谁知道是否有更好的方法?

小智 13

使用这样的shell脚本:

#!/usr/bin/env bash
cd yourdirectory
for f in *.csv
do
        mysql -e "USE yourDatabase LOAD DATA LOCAL INFILE '"$f"'INTO TABLE yourtable"
done
Run Code Online (Sandbox Code Playgroud)

  • 此外,您为每个文件调用一次mysql,这非常浪费). (3认同)

kon*_*ddy 11

有一些PHP脚本供您使用:

#!/usr/bin/php
<?
mysql_connect('localhost','root','root'); // MAMP defaults
mysql_select_db('yourdatabase');
$files = glob('*.csv');
foreach($files as $file){
    mysql_query("LOAD DATA INFILE '".$file."' INTO TABLE yourtable");
}
Run Code Online (Sandbox Code Playgroud)

请参阅适用于您的文档的LOAD DATA INFILE选项的MySQL手册.

  • 这可以用于允许将第一行数据用作列名吗? (2认同)

小智 6

您可以使用 shell 脚本来遍历文件(这个假设它们在当前目录中):

#!/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
Run Code Online (Sandbox Code Playgroud)