Есть ли способ динамически удалить строку из таблицы через определенный период времени?

Я пытаюсь удалить строку из своей таблицы через 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 часов.

после выполнения этого запроса что происходит?

Vinay Hegde 21.07.2019 20:00

Разве вы не можете просто добавить столбец для даты и времени создания, который был бы неизменным?

Ro Achterberg 21.07.2019 20:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
118
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны создать сценарий и периодически вызывать его с помощью Крон Джобс. В этом сценарии проверяйте все строки и удаляйте просроченные. Будет проще, если вы сохраните «срок действия» в таблице:

$expireAfter = time() + (12 * 60 * 60); // time returns number of seconds since the Unix Epoch

Затем в периодическом сценарии вы можете проверить, истек ли срок действия строки:

$now = time();
$queryString = "DELETE FROM detail1 WHERE `expiry_time` < $now;";

При таком подходе вам не нужно беспокоиться об изменении даты.

Другие вопросы по теме