mysql - 如果过去 24 小时内没有输入数据,则自动插入行

标签 mysql

我有一个名为导入的表。这些通常是每天制作的,但我希望能够记录一天过去而未进行导入的情况。目前,我通过运行一个 PHP 脚本来执行此操作,该脚本检查最后一个条目与当前条目,并插入为任何缺失的日期创建的具有空值的行。我希望有一种方法可以直接在数据库中安排类似的事情。

导入

import_id      |  created             | success | error
    0001       | 2015-01-21 10:39:53  |    4    |   3
    0002       | 2015-01-22 10:39:53  |    1    |   0
    0003       | 2015-01-23 10:39:53  |    1    |   1

如果 24 小时过后仍未导入:

新导入

import_id      |  created             | success | error
    0001       | 2015-01-21 10:39:53  |    4    |   3
    0002       | 2015-01-22 10:39:53  |    1    |   0
    0003       | 2015-01-23 10:39:53  |    1    |   1
    0003       | null                 |   null  |   null

最佳答案

编写一个查询来添加所需的行,然后使用CREATE EVENT安排它:

CREATE EVENT AddRow
ON SCHEDULE EVERY 1 DAY
DO
    INSERT INTO imports (import_id, created, success, error)
    SELECT MAX(import_id), null, null, null
    FROM imports
    HAVING MAX(created) < DATE_SUB(NOW(), INTERVAL 1 DAY)

关于mysql - 如果过去 24 小时内没有输入数据,则自动插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28206112/

相关文章:

MySQL如何选择字段或如果字段为空则设置为空?

PHP PDO |在嵌套 for 循环中调用存储过程调用的 execute() 和 fetchAll()

java - 为什么我收到 NumberFormatException

MySQL WHERE IN(字符串的子字符串)?

mysql - 查询总数减少百分比

php - 将版主添加到论坛类别时没有模型 [App\Subreddit] 的查询结果

PHP 日期 ISO 8601 日期时区

MySQL:更快地执行多个条件的左连接

MySQL 查询问题 - 计数查询使用大量 CPU

php - React前端到Laravel和mysql的axios post请求失败