我想在指定的时间自动从指定的“文件夹”导入大约 3000 个 CSV 文件。每天都会更新 CSV 文件以包含新数据。
我知道我应该使用命令行工具“mysqlimport”和 --replace 选项,(因为有时旧数据会被更改)
我想在指定的时间自动从指定的“文件夹”导入大约 3000 个 CSV 文件。每天都会更新 CSV 文件以包含新数据。
我知道我应该使用命令行工具“mysqlimport”和 --replace 选项,(因为有时旧数据会被更改)
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";
}
?>