У меня есть таблица MySQL table1 , структурированная так:
idTable1, datetime, field1, field2
и я хочу установить событие, которое будет запускаться каждые 5 минут и копировать в table2 последние строки, имеющие различные пары ( field1, field2 ) и дату и время, которые являются самыми последними.
Например, если сейчас это было 30.04.2008, 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
Где я не прав?