Django是否支持设置id列的起始值?

时间:2018-01-08 22:00:40

标签: django database model

我在SO上看过几个问题和答案,大多数是三岁或三岁以上,我看了Django documentation(希望我没有错过)。我必须有一个9位以上的id号码。大多数回复是在数据库中做到这一点。我猜这意味着在Django中创建模型,然后返回数据库并更改用列上的新起始/下一个值属性创建的Django id列。

如果不能如何从Django创建数据库表, Code First ,这允许我创建一个id列以100000000开头的表?而且,它是用Django中的库存模型对象方法完成的。我真的不想做一个特别的黑客攻击。如果是这种情况,我可以去数据库并修复列。我试图坚持Django的Code First想法(虽然我更喜欢数据库,但是害怕使用inspectdb会弄得一团糟。)

编辑:我不想使用UUID。我相信BigAutoField是最好的。

1 个答案:

答案 0 :(得分:2)

您应该可以分两步完成此操作:

1 - 在模型定义中使用primary_key=TRUE明确指定主键。有关详细信息,请参阅Django docs。然后,您可以为主键指定BigAutoField或其他任何类型。

2A - 如果你预先填充数据库,只需在你的灯具中设置pk: 100000000

OR

2B - 如果您没有预先填充数据库,请使用Django模型迁移操作RunSQL作为详细here。对于SQL使用ALTER TABLE tableName AUTO_INCREMENT=100000000