草庐IT

主键自增

全部标签

分布式id、系统id、业务id以及主键之间的关系

推荐连分布式ID都理解不了,你是刚培训出来冒充面试官的吧1分布式id、系统id、业务id以及主键之间的关系分布式ID、系统ID、业务ID和主键的关系:分布式ID:在分布式系统中,由于存在多个独立的节点,为了保证每个节点生成的ID都是全局唯一的,就需要用到分布式ID。它是全局唯一的,可以用作数据库的主键。系统ID:一般用来在一个系统或者平台内部区分不同的用户、订单等,不一定是全局唯一的,所以不能用作分布式系统中的主键。业务ID:业务ID是根据业务逻辑生成的ID,它的生成规则可能会包含一些业务信息,如时间、地点等。它可以是全局唯一的,也可以只在某个业务范围内唯一。主键:数据库表中的主键是用来唯一标

python - SQLAlchemy 一对多,子表没有主键

是否可以在SQLAlchemy中创建没有主键的表?我要定义的关系如下:classTPost(Base):__tablename__="forum_post"id=Column(Integer,primary_key=True)topic_id=Column(Integer,ForeignKey("forum_topic.id"))index=Column(Integer)page=Column(Integer)user_id=Column(Integer,ForeignKey("forum_user.id"))posted_at=Column(DateTime)post_text=Co

python - 使用自然键排除 Django 转储数据中的主键

当启用自然键时,如何从Django的转储数据生成的JSON中排除主键?我构建了一个我想“导出”的记录,以便其他人可以将其用作模板,方法是将其加载到具有相同模式的单独数据库中,而不会与同一模型中的其他记录发生冲突。据我了解Django对自然键的支持,这似乎是NK的设计目的。我的记录有一个唯一的name字段,它也被用作自然键。所以当我运行时:fromdjango.coreimportserializersfrommyapp.modelsimportMyModelobj=MyModel.objects.get(id=123)serializers.serialize('json',[obj]

python - 如何用该表唯一的不同整数替换 Django 的主键

我有一个Django网络应用程序,它使用默认的自动递增正整数作为主键。此键在整个应用程序中使用,并经常插入到URL中。我不想向公众公开此数字,以便他们可以猜测我的数据库中的用户或其他实体的数量。这是一个常见的要求,我已经看到了与我的类似的问题和答案。大多数解决方案建议散列原始主键值。但是,这些答案都不完全符合我的需要。这些是我的要求:我想将主键字段类型保留为整数。我也希望不必在每次读取或写入此值或与数据库进行比较时都对其进行散列/取消散列。这似乎很浪费只做一次会很好:当记录最初插入数据库时​​哈希/加密函数不需要是可逆的,因为我不需要恢复原始顺序key。散列值只需要是唯一的即可。散列值

python - 如何更改 Alembic 中主键字段的长度?

我正在尝试将主键字段的长度从3更改为6。型号:classServer(db.Model):country_code=db.Column(db.String(6),primary_key=True)迁移:defupgrade():op.alter_column('server','country_code',existing_type=mysql.VARCHAR(length=3),type_=sa.String(length=6))但是我收到了这个错误消息,我不太明白为什么它认为我正在将它更改为null。_mysql_exceptions.DataError:(1171,'Allpar

python - 是否可以让 sqlalchemy 创建一个带有整数部分的复合主键而不使其成为 IDENTITY 类型?

我正在使用sqlalchemy6.0。SQLServerT-SQL方言似乎想要将属于我的主键的任何整数变成一个标识。如果整数字段是主键,那可能没问题,但我的是复合字段,这对我不起作用。有没有办法抑制这种行为?下面是问题的演示:fromsqlalchemyimport*fromsqlalchemy.schemaimportCreateTablefromsqlalchemy.typesimportCHARimportsqlalchemy.dialects.mssql.pyodbcmetadata=MetaData()t=Table('TEST',metadata,Column(u'int_

python - 我的模型主键如何以特定数字开头?

我有一个User模型,我希望它的id从10000开始,然后它的id应该像这样自动递增:10001,10002,10003,10004...我的用户类:classUser(AbstractUser):username=models.CharField(max_length=64)...有可能实现吗?EDIT-1在问这个问题之前,我已经阅读了这个链接:IsthereawaytosettheidvalueofnewDjangoobjectstostartatacertainvalue?但我不认为答案是好的,所以我的意思是如果在Django中有实现这个的配置? 最佳

python - SQLAlchemy:具有复合主键的关系表

我有一组表格如下:workflows=Table('workflows',Base.metadata,Column('id',Integer,primary_key=True),)actions=Table('actions',Base.metadata,Column('name',String,primary_key=True),Column('workflow_id',Integer,ForeignKey(workflows.c.id),primary_key=True),)action_dependencies=Table('action_dependencies',Base.m

python - 在客户端创建 UUID 并使用 Django REST Framework 和使用 POST 保存主键

我希望能够在客户端创建一个UUID并将其发送到DjangoRestFramework(DRF)并将其用于Primary模型的键。到目前为止,当我发送在我的源代码中标记为id的PrimaryKey时,DRF会忽略id并使用模型的默认参数以生成新的UUID。但是,当我从模型进行测试时,使用普通的DjangoORM创建对象并预先设置UUID,模型接受UUIDPrimaryKey并且不会尝试重新创建一个新的。这可能吗?我的堆栈是Django1.8Django休息框架3.1这是代码。序列化程序.py:classPersonCreateSerializer(serializers.ModelSer

python - Django 或类似的复合主键

我正在为我的工程公司编写一个Web应用程序(警告:我只是业余爱好的程序员)并且在我遇到这个障碍之前计划使用Django。我想使用的模型自然具有多列主键。每http://code.djangoproject.com/ticket/373,我不能使用Django,至少不是发布版本。任何人都可以帮助我解决问题,无论是通过另一个Web框架(请仅基于Python)还是通过建议对模型进行更改以使其适用于Django的限制?我真的希望是后者,因为我希望以此为契机学习Django。例子:表1有part_number和part_revision作为两个字段,它们应该包含一个主键。一个P/N可以存在于多个