django中的id

写了个文章的 Article 的 model, 然后后台加了八篇文章,然后又删了,再重新加了一篇文章,结果输出这篇文章的 id 为什么是 9 呢??

阅读 4.4k
2 个回答

这是来源于数据库的自增字段,以sqlite为例,这个数据存储在sqlite_sequence系统表中。

图片描述

这个问题在stackoverflow有人解答过,如果英文可以的直接看这篇文章就可以了。

http://stackoverflow.com/ques...

把大概意思说一下:
现在的数据库系统不复用表元祖的id:

  • 主要是从效率上考量的,如果要保持顺序的id,需要大量时间和空间上的资源来维持这些id信息;

  • 保持顺序的id没有任何意义;

  • 保持id复用,则数据库系统无法支持并行插入操作;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题