MySQL Query / View仅提取自上次查询以来的新数据

时间:2015-02-09 12:29:38

标签: mysql views

我想创建一个View,它只返回自上次运行View以来添加到数据库的新数据。我知道这听起来像一个简单的问题,在这里有数百万的问题就像它一样,但我的情况有一些限制。

  • 我无法使用存储过程,函数或触发器。
  • 访问View的用户只能访问数据库。

我发布了一个类似的问题here,并且要添加一个UPDATE语句来更新具有当前DateTime的表,然后在View的开头检查此表,并在此DateTime之后仅查询。但访问View的用户现在只能读取访问权限。

我还在想,当使用SELECT语句读取时,可能会有一种时间戳列更新为当前时间,但显然不是。

仅供参考,只有一位用户可以访问此视图。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

如果用户只具有对数据库的读访问权限,则必须将相关信息存储在应用程序层而不是数据库中。如果您没有写访问权限,或者至少信息不属于某个其他流程,则无法在数据库中存储信息。

建议是让应用程序跟踪返回的记录 - 跟踪最大CreatedAt值或id。然后使用以下内容访问数据库:

select v.*
from view v
where id > $id;

后续代码将更新应用程序中的$id