2015-02-09 58 views
0

我想创建一个视图,该视图仅返回自上次运行视图以来添加到数据库的新数据。我知道这听起来像一个简单的问题,在这里有几百万的问题,但在我的情况下有一些限制。自上次查询以来,MySQL查询/视图仅提取新数据

  • 我不能使用存储过程,函数或触发器。
  • 访问视图的用户只能读取数据库。

我张贴了类似的问题here,并要添加一个UPDATE语句来更新与当前日期时间的表,然后在这个日期之后的视图,只有查询开始查这个表。但访问该视图的用户现在只能读取访问权限。

我也在考虑可能存在一种时间戳列,当用SELECT语句读取时更新到当前时间,但显然不是。

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

任何帮助非常感谢。

+0

我不确定,是否有可能。 MySQL不存储,不管这个记录是否是上次返回的。由于您无法写入数据库,因此无法自行编写它。 – user4035 2015-02-09 12:36:28

回答

0

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

建议将为应用程序跟踪返回的记录 - 记录最大值CreatedAt值或id

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

随后的代码将在应用更新$id:然后使用类似访问数据库。

+0

感谢您的支持,遗憾的是没有任何应用。用户直接查询视图。 – superphonic 2015-02-09 13:31:00