MS Access按自动编号/主键排序

时间:2014-03-19 12:47:27

标签: sql sorting ms-access-2007 primary-key autonumber

我对使用表中主键的自动编号在select语句中对结果进行排序很感兴趣。

最终,我希望从表格中选择最新记录,并注意使用ORDER BY DateTime DESC时的执行时间远远超过使用ORDER BY Id DESC

虽然假设编号最高的自动编号/主键是最后一条记录,这是不好的做法吗?

由于 加雷

1 个答案:

答案 0 :(得分:3)

  

虽然假设编号最高的自动编号/主键是最后一条记录,这是不好的做法吗?

<击> 如果你的意思是最后一个插入记录,那么这是一个不错的方法 - autonumber永远不会去#34;倒退&#34; (但可以如下所述变为负数。)

但是,您可以指定一些可能会改变正确答案的边缘情况:

    <击>
  • 如果两条记录具有相同的DateTime值,该怎么办?他们俩都会被认为是最后一个&#34;记录?
  • 您是否会使用较早的DateTime插入记录(例如从外部源导入或合并两个数据集。
  • 你有超过20亿条记录吗?如果是这样,那么你将自动增量整数滚动到负数

修改

基于评论和donwvotes,我修改了我的答案,同意自动增量字段不是确定&#34; last&#34;的最佳解决方案。记录。有太多案例可能会推荐它。

总而言之,如果您对&#34; last&#34;的定义是&#34;具有最高DateTime值的记录&#34; - 然后用它!

您可以在DateTime上添加一个索引,这将显着加快对该列的查询速度。