Я пытаюсь удалить строку из своей таблицы через 12 часов после создания строки.
У меня есть столбец dateTime в моей таблице, в котором записано время его создания, есть ли способ динамически удалить строку через 12 часов? Еще одна проблема, которую это создает, заключается в том, что дата может измениться в течение 12 часов, что может сделать временную метку строки неактуальной.
Я попытался выполнить несколько простых SQL-запросов из примеров, которые я нашел по аналогичным вопросам, хотя я не знаю, как справиться с аспектом проблемы с изменением даты.
Примеры запросов:
DELETE FROM detail1 WHERE date < DATETIME('NOW', '-1 hours');
Вот моя таблица:
ID |Position| dateApplied
1 | 1 | 2019-07-20 05:23:16
2 | 2 | 2017-07-20 12:13:30
Я хотел бы найти запрос, который поможет мне удалить каждую строку через 12 часов.
Разве вы не можете просто добавить столбец для даты и времени создания, который был бы неизменным?






Вы должны создать сценарий и периодически вызывать его с помощью Крон Джобс. В этом сценарии проверяйте все строки и удаляйте просроченные. Будет проще, если вы сохраните «срок действия» в таблице:
$expireAfter = time() + (12 * 60 * 60); // time returns number of seconds since the Unix Epoch
Затем в периодическом сценарии вы можете проверить, истек ли срок действия строки:
$now = time();
$queryString = "DELETE FROM detail1 WHERE `expiry_time` < $now;";
При таком подходе вам не нужно беспокоиться об изменении даты.
после выполнения этого запроса что происходит?