gpt4 book ai didi

python - 将 SQLAlchemy ORM 用于非主键、唯一、自动递增的 id

转载 作者:可可西里 更新时间:2023-11-01 07:30:00 25 4
gpt4 key购买 nike

当我运行以下代码时,我希望 first_name 和 last_name 是复合主键,id 是该行的自动递增索引,但不充当主键,因为那里有信息在表的其余部分是我需要定义它的唯一性,而不是给定的 ID。

Base = declarative_base()
Session = sessionmaker(bind=db)
session = Session()

class Person(Base):
__tablename__ = "people"
id = Column(Integer, index=True, unique=True, autoincrement=True, primary_key=False)
first_name = Column(String(30), primary_key=True)
last_name = Column(String(30), primary_key=True)

if __name__ == "__main__":
Base.metadata.create_all(db)
session.add_all([
Person(first_name="Winston", last_name="Moy"),
Person(first_name="Bill", last_name="Gates"),
Person(first_name="Steve", last_name="Jobs"),
Person(first_name="Quinten", last_name="Coldwater")
])
session.commit()

问题 我在 DataGrip 中查看结果,得到下表。数据不按添加顺序排列,id 列为空,而不是我期望的自动递增整数。 Image of person table

明确一点:我的问题是:如何为不是主键的 SQLAlchemy ORM 类创建自动递增索引?

最佳答案

在撰写本文时,SQLAlchemy 1.1 不支持在非主键字段上自动递增。

关于python - 将 SQLAlchemy ORM 用于非主键、唯一、自动递增的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com