我有一张叫做进口的桌子。这些通常是每天制作的,但我希望能够记录一天过去并且没有进行导入。目前,我通过运行一个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
答案 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)