我有一个一对一的关系,在笼码和邓斯数之间。
我已经设置了我的关系,其中我在每个相应的表上存储一个ForeignKey。
class Cage(Base):
__tablename__ = 'DimCage'
id = Column(Integer, primary_key=True)
cage = Column(String(8), unique=True, nullable=False)
duns_id = Column(Integer, ForeignKey('DimDuns.id'))
duns = relationship('Duns', uselist=False, back_populates='cage')
class Duns(Base):
__tablename__ = 'DimDuns'
id = Column(Integer, primary_key=True)
duns = Column(String(10), unique=True, nullable=False)
dunsInt = Column(Integer, unique=True, nullable=False)
cage_id = Column(Integer, ForeignKey('DimCage.id'))
cage = relationship('Cage', uselist=False, back_populates='duns')
当我创建表时,我得到了下面的错误,如何设置我的外键,以便我可以在两个表上保留一个引用?
sqlalchemy.exc.AmbiguousForeignKeysError:无法确定'DimCage‘和’DimDuns‘之间的联接;表之间有多个外键约束关系。请显式指定此联接的'onclause‘。
在处理上述异常的过程中,又发生了一个异常:
sqlalchemy.exc.AmbiguousForeignKeysError:未能确定relationship Cage.duns上父表/子表之间的联接条件-有多个外键路径链接这些表。指定'foreign_keys‘参数,提供应被视为包含对父表的外键引用的列的列表。
发布于 2019-06-21 03:26:03
请参阅https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html#one-to-one
您不应该以这种方式丢失任何数据访问。
https://stackoverflow.com/questions/56691341
复制相似问题