【问题标题】:SQL Alchemy creates new object with existing Primary keySQLAlchemy 使用现有主键创建新对象
【发布时间】:2018-03-14 11:36:34
【问题描述】:

我正在尝试在 sqlalchemy 中创建新对象,但由于该 ID 已经存在而出现完整性错误。下面是我的模型。

class RFBOpportunityDetail(Base):
    __tablename__ = 'rfb_opportunity_detail'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    code = Column(String, unique=True)

我正在使用 postgreSQL 数据库,并且该表已经有条目。下面是创建新对象的代码。

models.RFBOpportunityDetail(name=name, code=code)

关于使用 SQLalchemy 或 PostgreSQL 创建新对象有什么我应该知道的吗?

错误

sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint "fbo_all_opportunity_detail_pkey"
DETAIL:  Key (id)=(221418) already exists

【问题讨论】:

  • 您的意思是已经存在具有相同code 的行吗?如果确实如此,您希望发生什么。您在示例中的任何地方都没有使用主键。您既没有提供来自引发异常的可能回溯,也没有提供示例数据。请提供minimal reproducible example
  • @IljaEverilä 更新了错误的帖子......不,这个错误不是因为代码已经存在

标签: python postgresql orm sqlalchemy


【解决方案1】:

当我通过 sql 导入数据时,发现 postgres 似乎存在一些问题。我使用下面的命令来解决这个问题

SELECT setval('rfb_opportunity_detail_id_seq', MAX(id)) FROM rfb_opportunity_detail;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 2015-05-06
    • 2023-03-10
    • 2017-10-24
    • 2011-03-18
    • 2012-11-06
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多