Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用cron作业检查MySQL表更新和发送邮件_Mysql_Amazon Web Services_Cron_Cron Task - Fatal编程技术网

如何使用cron作业检查MySQL表更新和发送邮件

如何使用cron作业检查MySQL表更新和发送邮件,mysql,amazon-web-services,cron,cron-task,Mysql,Amazon Web Services,Cron,Cron Task,我编写了一个请求程序,其中包含每当插入新数据时自动发送邮件。我想使用cron来激活请求 每当MySQL更新时,我都希望自动接收邮件。我建议以下解决方案: 1) 添加默认值为“INSERTED”的列“Status”,并创建一个简单的程序,该程序将按分钟检索状态为“INSERTED”的行并发送电子邮件通知。发送电子邮件后,您应该将状态更新为“已发送”或类似的内容 ALTER TABLE `your_table` ADD COLUMN `STATUS` VARCHAR(45) NULL DEFAUL

我编写了一个请求程序,其中包含每当插入新数据时自动发送邮件。我想使用cron来激活请求


每当MySQL更新时,我都希望自动接收邮件。

我建议以下解决方案:

1) 添加默认值为“INSERTED”的列“Status”,并创建一个简单的程序,该程序将按分钟检索状态为“INSERTED”的行并发送电子邮件通知。发送电子邮件后,您应该将状态更新为“已发送”或类似的内容

ALTER TABLE `your_table` 
ADD COLUMN `STATUS` VARCHAR(45) NULL DEFAULT 'INSERTED';
您的应用程序由cron调度。作业应通过查询检索数据:

select <some_fields>
from  <your_table>
where status = 'INSERTED'; 

<send email logic>

update <your_table>
set status = 'SENDED'; 
where status = 'INSERTED'; 
选择
从…起
其中status='INSERTED';
更新
设置状态='已发送';
其中status='INSERTED';
2) 创建触发器,将新行的信息插入到单独的表中。接下来的步骤与前面的方法相同

CREATE TRIGGER save_inserted_data AFTER INSERT ON your_table
FOR EACH ROW BEGIN
      insert into log_table (id)
      values (:new.id)
END;

<send email logic>

delete from log_table; 
在插入到\u表后创建触发器保存\u插入的\u数据
每行开始
插入日志表(id)
值(:new.id)
结束;
从日志表中删除;
您应该添加一些逻辑,在发送电子邮件时考虑新行。即

  • 插入3行
  • 您检索了3行电子邮件通知
  • 有人添加新的吗
  • 只需标记/删除3行(无新行)

请您用您的问题示例向我解释一下您遇到问题的代码,然后我们可以尝试帮助解决具体问题。你也应该阅读。