如何从某个数字(如 2456)启动 Django 模型自动递增键?
Posted
技术标签:
【中文标题】如何从某个数字(如 2456)启动 Django 模型自动递增键?【英文标题】:How to start Django models auto increment key from a certain number like 2456? 【发布时间】:2021-01-20 15:59:23 【问题描述】:在 mysql 中,如果你想从 2456 开始你的自增键,你可以写 AUTO_INCREMENT=2456
同样在 PostgreSQL 中,我们可以使用 Sequence
来做到这一点
CREATE SEQUENCE serial START 2456;
INSERT INTO distributors VALUES (nextval('serial'), 'nothing');
但在 Django Rest Framework 或 Django 中,默认情况下自动增量从 1 开始。如果我有这样的模型
class Content(models.Model):
title = models.CharField(max_length=70, blank=False, default='')
description = models.CharField(max_length=200,blank=False, default='')
published = models.BooleanField(default=False)
如何确保第一个内容从 2456 开始?
【问题讨论】:
这能回答你的问题吗? Reset auto increment counter in postgres 没有。那是从数据库的角度来看..我需要从 Django 模型中自动递增。默认情况下,在 django 模型中,主键是一个从 1 开始的自增键。我希望该自增键从某个数字开始。 可以使用RunSQL
迁移
我对 RunSQL 不熟悉。所以谢谢你提供一个例子。
【参考方案1】:
创建RunSQL
--(Django Doc) 操作
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('sample', '0003_content'),
]
operations = [
migrations.RunSQL(
"ALTER SEQUENCE sample_content_id_seq RESTART WITH 1453"
),
]
【讨论】:
谢谢..这正是我想要的。以上是关于如何从某个数字(如 2456)启动 Django 模型自动递增键?的主要内容,如果未能解决你的问题,请参考以下文章