MYSQL使用mysqlimport自动从文件夹插入csv文件

时间:2014-03-08 13:16:03

标签: mysql csv import directory mysqlimport

我想在指定时间自动从指定的“文件夹”导入大约3000个CSV文件。 每天都会更新CSV文件以包含新数据。

我知道我应该使用命令行工具“mysqlimport”和--replace选项,(因为有时旧数据会被更改)

1 个答案:

答案 0 :(得分:5)

load data local infile 'uniq.csv' into table tblUniq(field1, field2, field3)
fields terminated by ','
enclosed by '"'
lines terminated by '\n'

这是一个可选的解决方案,您唯一需要的是PHP \ Perl \ Python脚本来覆盖所有文件,并逐个插入

PHP代码:

<?php

    $basedir = "/path/to/dir"
    if ($handle = opendir($basedir)) {
      while(false !== ($entry = readdir($handle))) {
        $query = "LOAD DATA LOCAL INFILE $basedir$entry
                    INTO TABLE tableName
                    FIELDS
                    TERMINATED BY ','
                    OPTIONALLY ENCLOSED BY '\"'
                    ESCAPED BY '\\'
                    LINES TERMINATED BY '\n'
                    IGNORE 1 LINES");
        if(DEBUG) { echo $query . "\n"; }
        if(!mysql_query($query)) {
          die('MySQL error: ' . mysql_error());
        }
      }
    } else {
      echo "Could not open $basedir";
    }
    ?>