【问题标题】:sqlalchemy.exc.ProgrammingError: (ProgrammingError) there is no unique constraint matching given keys for referenced tablesqlalchemy.exc.ProgrammingError: (ProgrammingError) 没有唯一约束匹配给定键的引用表
【发布时间】:2014-02-17 05:19:01
【问题描述】:

我正在使用 sqlalchemy 创建以下两个表:

class Classroom(Base):
    __tablename__ = 'classroom'
    building = Column(String(256), primary_key = True)
    room_no = Column(String(256), primary_key = True)
    capacity = Column(Integer)

class Section(Base):
    __tablename__ = 'section'
    course_id = Column(String(256), ForeignKey('course.course_id'), primary_key = True)
    building = Column(String(256), ForeignKey('classroom.building'))
    room_no = Column(String(256), ForeignKey('classroom.room_no'))

但是,我收到错误消息:

 sqlalchemy.exc.ProgrammingError: (ProgrammingError) there is no unique constraint matching given keys for referenced table "classroom"

【问题讨论】:

    标签: postgresql indexing sqlalchemy foreign-keys


    【解决方案1】:

    我刚刚想通了,在这种情况下,我需要有一个多列外键约束: 将我的部分模型更改为:

    class Section(Base):
        __tablename__ = 'section'
        course_id = Column(String(256), ForeignKey('course.course_id'), primary_key = True)
        building = Column(String(256))
        room_no = Column(String(256))
        __table_args__ = (ForeignKeyConstraint([building, room_no],[Classroom.building, Classroom.room_no]), {})
    

    一切正常。

    【讨论】:

    • 感谢您在发现问题后跟进,而不是仅仅放弃问题。
    猜你喜欢
    • 2021-12-11
    • 2017-08-11
    • 1970-01-01
    • 2016-04-13
    • 2022-09-27
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多