Удалить строку после десяти минут неиспользования ("срок действия")
Я использую базу данных MySQL в стеке LAMP. У меня есть таблица, в которой я получил несколько простых записей. Эти записи должны автоматически удаляться через десять минут, когда они не используются. "используется" определяется как вставка, обновление или просто запрос через SELECT (очевидно, удаление не имеет значения). Я хотел бы использовать для этого чистый MySQL, но пока не смог найти решение. Поля могут иметь свойство table.time_used, если требуется, но еще не имеют его. Это было бы не проблема, чтобы создать его, хотя. Я думал о какой-то комбинации TRIGGER и PROCEDURE, но пока не смог понять.
Я знаю, что мог бы использовать какое-либо стороннее приложение, такое как cron, но я бы предпочел решение MySQL, потому что проект может быть скопирован в другие среды, где cron недоступен.
Я также знаю, что это можно сделать, изменив операторы SELECT с использованием таблицы и поля table.expiration_time, что, вероятно, будет более точным, но мне не нужно, чтобы оно работало со вторым, мне просто нужно примерно десять минут и хотел бы сохранить его в чистоте, так как это может работать на очень ограниченных машинах.
Заранее спасибо!:)
1 ответ
Я бы порекомендовал всем доступ через хранимые процедуры, которые затем будут контролировать обновление lastUsed
Дата и время.
Доступ Adhoc за пределами хранимых процедур не обеспечит lastUsed
аспект обновляется. Другими словами, это будет осуждено. Естественно, его можно использовать, но, поскольку он не будет иметь жесткого контроля, он окажется вне ожиданий.
Любой другой механизм для выполнения этого будет полагаться на службу fullstack, которая находится за пределами MySQL.
Автоматическое удаление будет происходить через встроенную функцию событий в MySQL. У меня есть 3 ссылки, связанные с событиями, со страницы моего профиля. Один, чтобы начать смотреть здесь.