mysql事件:在另一个表中插入字段在给定范围内的行

vecaoik1  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(269)

我有一个mysql表table1,结构如下:
idtable1,日期时间,字段1,字段2
我想设置一个每5分钟运行一次的事件,并在表2中复制最后几行(field1,field2),其中dateandtime是最近的。
例如,如果现在是2018年4月30日10:36:50,表1中有这些行

idTable1|  field1        | dateandtime        | field2        |         
    --------------------------------------------------------------
    |1      | value1field1   |2018-04-30 10:30:07 | value1field2  |
    --------------------------------------------------------------
    |2      | value2field1   |2018-04-30 10:32:41 | value1field2  |
    --------------------------------------------------------------
    |3      | value1field1   |2018-09-03 10:33:17 | value1field2  |
    --------------------------------------------------------------
    |4      | value3field1   |2018-09-03 10:35:27 | value1field2  |
    --------------------------------------------------------------
    |5      | value1field1   |2018-09-03 10:36:17 | value1field2  |
    --------------------------------------------------------------

我希望事件在表2中复制这些数据:

idTable2  |idTable1|  field1        | dateandtime        | field2        |         
    --------------------------------------------------------------------------
    |1        |2       | value2field1   |2018-04-30 10:32:41 | value1field2  |
    --------------------------------------------------------------------------
    |2        |3       | value1field1   |2018-09-03 10:33:17 | value1field2  |
    --------------------------------------------------------------------------
    |3        |5       | value1field1   |2018-09-03 10:36:17 | value1field2  |
    --------------------------------------------------------------------------

我尝试了以下代码,但似乎没有插入任何记录:

BEGIN

    INSERT INTO table2 (idTable1, field1, dateandtime, field2) 
    SELECT idTable1, field1, dateandtime, field2            
    FROM table1
    WHERE dateandtime > date_sub(now(), interval 5 MINUTE)
    GROUP BY field1, field2
    ORDER BY dateandtime DESC;

END

我错在哪里?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题