如果在过去24小时内未输入任何数据,则自动插入行

时间:2015-01-29 02:36:31

标签: 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

1 个答案:

答案 0 :(得分:1)

编写一个添加所需行的查询,然后使用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)