我有一张桌子,
class RMMASTST(Base):
__tablename__ = 'RMMASTST'
RecorderID = Column(String(50), primary_key=True)
metering_data = relationship("StatsMetering", backref="recorder")
现在,我想创建第二个表:
class StatsMetering(Base):
__tablename__ = 'StatsMetering'
RecorderID = Column(String(50), ForeignKey(RMMASTST.RecorderID), primary_key=True)
但是,当我执行脚本时,出现以下错误:
sqlalchemy.exc.ProgrammingError:(pyodbc.ProgrammingError)('42000',“[42000] [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]列'RMMASTST.RecorderID'长度不同或者在外键'FK__StatsMete__Recor__4B7734FF'中引用列'StatsMetering.RecorderID'进行缩放。参与外键关系的列必须以相同的长度和比例定义。(1753)(SQLExecDirectW)“)
有谁知道我为什么继续收到这个错误?显然,这些是脚本的摘录。所有表都是使用:
创建的Base.metadata.create_all(Engine)
答案 0 :(得分:0)
发布的代码工作正常,如果出现此类错误,只需确保没有创建可能具有不同长度的表。