【问题标题】:Given a date and time, is there a way to find out what auto-increment id was generated at that time?给定日期和时间,有没有办法找出当时生成的自动增量 ID?
【发布时间】:2013-12-05 16:26:54
【问题描述】:

在 RDBMS 中,是否可以获得在特定日期和时间生成的自动增量 ID?

我需要编写一个特定范围的查询,并且有一个自动递增的主键可以加快我的查询速度。但是,我只知道我感兴趣的时间范围,而不知道实际的主键。

那么是否有可能: 获取日期 x 和日期 y 生成的自增 id,然后在我的查询中使用它?

谢谢, 卡提克

【问题讨论】:

  • @user357065:如果你显示一些数据会很容易理解
  • 除非您没有将该信息存储在某处,否则不会。您可以添加一个 CreationDate 字段,但您无法重建您的历史记录。 可能可以在特定日期/时间将数据库恢复到以前的状态,但这将是一项繁琐的工作。关注这个问题,因为它可能很有趣:)
  • 如果您需要运行一次,那么只需使用日期(谁在乎它是否完整扫描,请稍等)。如果由于某种原因您需要在相同的日期范围内一遍又一遍地运行它,那么也许:从 my_table 中选择 min(id), max(id) where my_date_col 在 dateA 和 dateB 之间。然后使用这些 id 进行范围查询

标签: sql oracle auto-increment rdbms


【解决方案1】:

如果您在使用序列的表中有创建日期或更新日期,您可以获得该信息。在 oracle 中,您可以创建触发器以在单独的表中收集此信息。其他选项是在目标表上设置 MVIEW 日志记录

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2020-04-21
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多