有没有办法将新Django对象的id值设置为从某个值开始?

有没有办法将新Django对象的id值设置为从某个值开始?,django,Django,有没有办法为Django中的对象设置id值计数器 例如,我有一组对象“Video”,当前id=100,下次创建“Video”类型的对象时,它将是id=101。但是,我希望所有新创建的视频对象都从id=2000开始。有没有办法做到这一点?您可以在创建对象时指定ID,只要在保存之前指定: new = Video() new.id = 2000 new.save() 您可以每次只计算您想要的ID——尽管我不确定Django的自动ID字段有什么问题;) 您可以制作一个装置,在数据库中创建ID=1999

有没有办法为Django中的对象设置id值计数器


例如,我有一组对象“Video”,当前id=100,下次创建“Video”类型的对象时,它将是id=101。但是,我希望所有新创建的视频对象都从id=2000开始。有没有办法做到这一点?

您可以在创建对象时指定ID,只要在保存之前指定:

new = Video()
new.id = 2000
new.save()

您可以每次只计算您想要的ID——尽管我不确定Django的自动ID字段有什么问题;)

您可以制作一个装置,在数据库中创建ID=1999的虚拟行。下一个自动生成的ID将是2000

此解决方案可能依赖于您的数据库后端“继续您离开的地方”。至少MySql和PostgreSQL可以做到这一点(我想每个后端都可以做到)

还有一个仅针对MySql的解决方案(据我所知),它包括一个SQL语句
altertable tbl AUTO_INCREMENT=100


不过,这不再是数据库不可知的问题。

我认为OP的意思是询问是否有办法在Django中配置自动id序列的起始值。一个难看的做法是制作一个夹具,在数据库中生成id=1999的虚拟行。下一个自动生成的ID将是2000。真的吗?那么自动增量就从db中的最大值开始?不想填补任何漏洞?我没有意识到这一点。这对我需要做的事情来说是很好的。谢谢