可以依赖数据库中的自动递增主键吗?

Bus*_*ark 5 database database-design ruby-on-rails primary-key auto-increment

在我目前的Rails应用程序中,我通过" created_at"字段对模型进行排序来解决调度冲突.但是,我意识到当从允许这种情况的表单中插入多个模型时,所有created_at时间都完全相同!

这是一个关于最佳编程实践的问题:您的应用程序是否可以依赖数据库中的ID列来逐渐增加它们INSERT以获得它们的创建顺序?换句话说,我可以根据ID列对我从数据库中提取的一组行进行排序,并确保这是基于创建顺序的准确排序吗?这在我的申请中是一个很好的做法吗?

cle*_*tus 1

这取决于您的数据库供应商。

MySQL 我相信绝对命令自动增量键。SQL Server 我不确定它是否有效,但我相信它确实如此。

您会遇到问题的是不支持此功能的数据库,最明显的是使用序列的 Oracle,序列是粗略但不是绝对排序的。

另一种方法可能是先查找创建时间,然后查找 ID。