Предположим, у меня есть таблица с текущими пользователями, вошедшими на мой сайт. И если у меня не будет никакой «активности» с одним из его / ее имени пользователя за определенный промежуток времени, он будет удален из таблицы.
Как проще всего реализовать эту функцию?
Помимо использования командных файлов или чего-то подобного.
Я искал, но триггеры базы данных не могут быть запрограммированы по времени, по крайней мере, из того, что я собрал.
Я буду использовать таблицу с именами пользователей и отметками времени, чтобы определить их последние действия, и учту, что те, кто ничего не делал за последние 10 минут, зарегистрированы.
Запланированные или отложенные действия - это не то, чего я ожидаю от сервера базы данных. Действия, подобные вашим, обычно программируются как внешняя служба. Планирование может быть выполнено с использованием множества механизмов. Crontab - один. Для приложения Java Quartz - один из вариантов.
Если вы запрашиваете таблицу, чтобы определить, вошел ли кто-нибудь в систему, я бы подумал об использовании представления, включающего относительный временной предел в критериях выбора. Арифметика даты - это обычная функция базы данных. Это сделало бы уборку таблицы менее важной по времени.
В Oracle есть функция Jobs, которая в основном представляет собой службу crontab, предоставляемую сервером базы данных. Я не знаю других баз данных с аналогичной функциональностью.