自动将csv文件传输到MySQL

自动将csv文件传输到MySQL,mysql,database,bash,csv,phpmyadmin,Mysql,Database,Bash,Csv,Phpmyadmin,我有一个csv文件,我将通过调用cygwin+bash脚本的批处理脚本定期更新该文件我想自动将csv文件上传到MySQL数据库中,这样数据库中的一个表就会定期更新csv文件。该数据库当前正在Windows Server 2003计算机上运行,并由phpMyAdmin管理 我在网上查了一下,找到了一些方法,可以实现其中的一部分,但对于这些源代码中的代码应该放在哪里以及如何调用它们,我感到困惑。例如,似乎演示了如何从SQL命令行将csv文件上载到MySQL数据库一次,但不是重复,后者正是我所需要的

我有一个csv文件,我将通过调用cygwin+bash脚本的批处理脚本定期更新该文件我想自动将csv文件上传到MySQL数据库中,这样数据库中的一个表就会定期更新csv文件。该数据库当前正在Windows Server 2003计算机上运行,并由phpMyAdmin管理

我在网上查了一下,找到了一些方法,可以实现其中的一部分,但对于这些源代码中的代码应该放在哪里以及如何调用它们,我感到困惑。例如,似乎演示了如何从SQL命令行将csv文件上载到MySQL数据库一次,但不是重复,后者正是我所需要的

如果可能的话,我更喜欢使用包含bash脚本的解决方案(而不是批处理和php)(即我更喜欢与更新csv文件的bash脚本集成的解决方案


谢谢

您可以通过执行以下操作从命令行执行MySQL脚本:

mysql -uUsername -pPassword database_name < infile.sql

您可以使用here文档:

# some bash script stuff
mysql ... <<EOF
SQL COMMANDS
GO HERE
EOF
# more bash script stuff
#一些bash脚本的东西

mysql 您可以使用Quartz创建cronjob,以便定期更新数据库。在cronmaker()的帮助下,您可以选择更新数据库的时间和频率

这是将数据导入MySQL数据库的示例SQL脚本:

LOAD DATA INFILE 'c:/.../filename.csv' 
INTO TABLE discounts 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

使用首选语言在cronjob中运行上述脚本。

quick comment,如果您的计算机上安装了Java环境,则需要将TO放入表格中。DBIS可能很有用。您不需要编写代码或批处理。只需创建项目并进行配置。
LOAD DATA INFILE 'c:/.../filename.csv' 
INTO TABLE discounts 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;