【发布时间】:2019-11-03 14:10:47
【问题描述】:
我在笼子代码和邓恩编号之间存在一对一的关系。
我已经建立了看起来像这样的关系,我在每个表上存储了一个 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:无法确定关系 Cage.duns 上的父/子表之间的连接条件 - 有多个外键路径链接表。指定 'foreign_keys' 参数,提供应计为包含对父表的外键引用的列的列表。
【问题讨论】:
标签: python python-3.x sqlalchemy