我有一个csv文件,我将通过调用cygwin + bash脚本的批处理脚本定期更新。 我想自动将csv文件上传到MySQL数据库,以便我的数据库中的表定期用csv文件更新。该数据库当前正在Windows Server 2003计算机上运行,并使用phpMyAdmin进行管理。
我已经在网上找到了一些可以实现其中一部分的方法,但我对这些来源中的代码放置位置以及如何调用这些代码感到困惑。例如,Import CSV file directly into MySQL似乎显示了如何从SQL命令行上传一个csv文件到MySQL数据库,但不是重复,后者就是我需要的。
如果可能的话,我更喜欢解决方案涉及bash脚本(而不是批处理和php)(即我更喜欢可以与更新csv文件的bash脚本集成的解决方案)
谢谢
答案 0 :(得分:5)
您可以通过执行以下操作从命令行执行MySQL脚本:
mysql -uUsername -pPassword database_name < infile.sql
您可以从命令行和infile.sql中调用它,您可以使用以下代码:
LOAD DATA INFILE 'filename.csv' TO table_name
FIELDS TERMINATED BY ','
答案 1 :(得分:0)
您可以使用此处的文档:
# some bash script stuff
mysql ... <<EOF
SQL COMMANDS
GO HERE
EOF
# more bash script stuff
答案 2 :(得分:-1)
您可以使用Quartz创建cronjob-定期更新数据库。在cronmaker(http://www.cronmaker.com/)的帮助下,您可以选择何时以及更新数据库的频率。
这是一个示例SQL脚本,用于将数据导入您的MySQL数据库:
LOAD DATA INFILE 'c:/.../filename.csv'
INTO TABLE discounts
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
使用您喜欢的语言在您的cronjob中运行以上脚本。