假设我有一个表,其中列出了当前登录我网站的用户。如果某个用户名在一段时间内没有任何“活动”,则该用户名将从表中删除。
实现此功能的最简单方法是什么?
除了使用批处理文件或类似的东西。
我搜索过,但数据库触发器无法进行定时编程,至少从我收集到的信息来看是这样。
我将使用一个包含用户名和时间戳的表来定义他们最近的活动,并认为那些在过去 10 分钟内没有做任何事情的人都已被记录下来。
答案1
我并不期望数据库服务器能够执行预定或延迟操作。通常,您需要的操作都是作为外部服务进行编程的。可以使用多种机制进行调度。Crontab 就是其中一种。对于 Java 应用程序,Quartz 是一种选择。
如果您要查询表格以确定某人是否已登录,我会考虑使用在选择标准中包含相对时间限制的视图。日期运算是常见的数据库功能。这将使清理表格的时间不那么紧迫。
Oracle 有一个作业功能,它基本上是数据库服务器提供的 crontab 服务。我不知道还有其他数据库具有类似的功能。