如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?

Posted

技术标签:

【中文标题】如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?【英文标题】:How can I create a MySQL Event to automatically add newly moved image files from my laptop? 【发布时间】:2016-01-26 09:41:56 【问题描述】:

我正在尝试创建一个 mysql 事件,以便可以将文件自动添加到我的 MySQL 数据库中。基本上,我现在正在运行 XAMPP 服务器,所以我所有的网站/数据库相关图像文件都在“C:\Users\Mus\server\htdocs\images”目录中。每当我将图像文件放入此目录时;我需要通过我试图创建的这个 MySQL 事件将该文件自动上传到数据库。这意味着数据库需要以 5 秒的时间间隔不断检查新文件,如果新文件已添加到所述目录,将自动为图像创建一个新条目(在指定的表中)并在同时,图像将被上传到数据库中的同一个表中。

我目前使用的 SQL 代码是:

CREATE EVENT 'eventnov' ON SCHEDULE EVERY 5 SECOND STARTS '2015-10-27 00:00:00' ENDS '2015-10-28 00:00:00' DO INSERT INTO 'images_11_nov' SELECT NOW();

我意识到第 5 行和第 6 行可能完全错误,但我尝试研究现有问题,但没有发现任何运气。我查看了official MySQL documentation,不幸的是我找不到与我的具体问题相关的任何内容。我不知道让 MySQL 在单个 MySQL 事件中执行以下所有操作的语法:

    以 5 秒的设定时间间隔检查指定的文件目录 (C:\Users\Mus\server\htdocs\images),如果有新移动的图像进入所述目录......(编号 2)李> 自动在 'images_11_nov' 表中创建一个条目作为新图像的占位符和....(编号 3) 自动上传这些新图像文件(最近已移至“C:\Users\Mus\server\htdocs\images”)并将它们插入到“images_11_nov”表中。

有人可以帮我完成上面的代码来执行这些必要的功能吗?如果我需要提供更多信息,请告诉我,我将尽义务。

编辑 1:“images_11_nov”表的列名称为“title”(varchar)、“imgdata”(BLOB)、“picid”(INT)、“datetime”(时间戳)。 编辑 2:我已经更改了有关 Jayesh Dhandha 答案的 SQL 代码,但我仍然在 MySQL 中遇到语法错误。更新后的代码如下:

CREATE EVENT 'eventnov' ON SCHEDULE EVERY 5 SECOND STARTS '2015-10-27 00:00:00' ENDS '2015-10-28 00:00:00' SELECT count(*) 'images_11_nov' system(ls C:\Users\Mus\server\htdocs\images | wc -l) system(ls -t | head -1) DO INSERT INTO 'images_11_nov';

【问题讨论】:

为什么不使用每 5 分钟运行一次并检查新文件的 cron 作业? 我一直在查找有关 cron 作业的教程,但实现 cron 作业来执行这些相同的功能似乎更加困难。我已经有了这个 SQL 查询所需的一些代码;它只需要额外的 2 或 3 行即可完成。 【参考方案1】:

是的,这很容易。您必须完成以下任务。

    使用select count(*) table_name;获取表中的行数

    在您提到的目录上使用系统命令

    system(ls C:\Users\Mus\server\htdocs\images | wc -l)

    这将为您提供上述目录中可用的文件数。

    现在将此计数与数据库的计数进行比较,并检查两者是否相等。

    如果加1则运行简单的系统命令可以知道目录中最新添加的文件。

    system(ls -t | head -1)

这里 ls -t 将按时间列出文件,带有 head 的管道将为您提供最新添加的文件的名称。

希望对你有所帮助。

问候, Jayesh Dhandha

【讨论】:

道歉,但我不明白。你想让我把它添加到我现有的 SQL 代码中吗?如果是这样,我应该从我的代码中删除哪些部分? 我将编辑主帖并修改我的代码以纳入您的建议;我不完全理解您的解决方案,因此我的代码中可能会出现错误。 如果我添加了两个文件?用那个 1 做一个 var?

以上是关于如何创建 MySQL 事件以自动添加笔记本电脑中新移动的图像文件?的主要内容,如果未能解决你的问题,请参考以下文章

#Python恶搞#用Python写一个自动关机程序

mysql笔记(22)--使用触发器

C#如何实现鼠标左键自动点击并自己设定点击间隔

苹果笔记本电脑如何下载软件,怎么允许osx安装外部软件啊

桌面快捷方式如何创建

MySQL笔记:触发器