如何自动更新SQL数据库

如何自动更新SQL数据库,sql,sqlite,automation,Sql,Sqlite,Automation,因此,我正在与一位教授合作,他希望我创建一个SQL数据库,其中包含来自csv文件的信息(来自纽约市交通部)。我已经编写了一个程序,它接收csv文件并将其转换为适当的sql命令。因此,我的问题是,如何使数据库自动化,使程序每隔5分钟左右下载一个新的csv文件,通过我的csv到SQL命令程序运行它,然后将csv到SQL命令程序的输出输入到终端(我使用什么来连接我的SQL数据库)?有没有一种特定的语言我应该研究一下,我见过人们谈论cron吗?cron是在Unix下制定计划任务的参考;Windows等价

因此,我正在与一位教授合作,他希望我创建一个SQL数据库,其中包含来自csv文件的信息(来自纽约市交通部)。我已经编写了一个程序,它接收csv文件并将其转换为适当的sql命令。因此,我的问题是,如何使数据库自动化,使程序每隔5分钟左右下载一个新的csv文件,通过我的csv到SQL命令程序运行它,然后将csv到SQL命令程序的输出输入到终端(我使用什么来连接我的SQL数据库)?有没有一种特定的语言我应该研究一下,我见过人们谈论cron吗?

cron是在Unix下制定计划任务的参考;Windows等价物是使用任务调度器设置要运行的任务


我不知道你的问题是否有一个纯SQL的答案——可能我的解决方法是用你选择的语言编写一个简单的导入程序,将其编译成.EXE,然后设置一个任务调度程序命令,每5分钟运行一次程序。(或者,您可以让应用程序一直处于运行状态,只需让计时器每5分钟执行一次即可触发导入)。

您可以做的最简单的事情就是循环脚本

如果您正在运行PHP,可以执行以下操作:

$running = true;
while ($running)
{
    // Your code that gets and converts CSV
    // and then saves it in SQL.

    $running = $some_error ? false : true;
    sleep(5000);
}

我不知道您在使用什么,但请注意逻辑,而不是语言。

您可以做的是使用Sql Server集成服务(SSIS)。它基本上是一个内置于Sql中的工作流包,可以让您处理这样的任务。您应该能够将CSV导入临时表,然后对其运行适当的查询

这是特定于Azure的,但针对托管SQL的工作应该类似。

我正在使用mac电脑。知道这一点会改变你的建议吗?@Will是的,你想看看
cron
/
crontab
。你的脚本是用什么语言编写的?这取决于你使用的是什么。我的脚本是用c++编写的,我认为这行不通。首先是因为海报提到他正在运行OSX,其次是因为问题被标记为SQLite。当然,SQLServer确实在OSX上运行,您可以使用ODBC链接的服务器将SQLite数据库连接到SQLServer实例,但这似乎需要大量的工作。