【问题标题】:when i delete rows from my database the primary key increases当我从数据库中删除行时,主键会增加
【发布时间】:2017-06-12 13:27:18
【问题描述】:

我尝试从 Django 管理中删除我的表中的数据(我使用默认数据库),但主键不断增加,即我的表中有两个实例,我删除了它们,并添加了一个新实例,所以应该'不是主键是 1,但它变成了零。我如何让它再次成为 1? 我应该自动递增吗?

【问题讨论】:

  • 这就是所有数据库的工作原理。您是否有任何特定原因要重置自动递增序列?如果没有,就别管它了。
  • 我删除了所有行以添加新行,所以再次从 1 开始 pk,我想要一个解决方案
  • Django model id has gaps的可能重复
  • 你真的应该解释你为什么要这样做。

标签: django django-1.8


【解决方案1】:

您不应该对主键做任何事情。如果它是一个自动递增的 id,它会一直递增,即使您从表中删除一行或所有行。

【讨论】:

  • 我要重置它,我的意思是主键
  • 唯一的方法是使用原始 SQL:python manage.py dbshel​​l mysql> ALTER TABLE AUTO_INCREMENT = 1;
  • 不是默认的,比如 sqlite
  • 但这确实是个坏主意,我不建议这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 2014-06-24
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多