在Pyton3.4错误中解决相同长度和缩放外键(使用sqlalchemy)

时间:2017-05-24 13:30:11

标签: python python-3.x sqlalchemy

我有一张桌子,

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)

1 个答案:

答案 0 :(得分:0)

发布的代码工作正常,如果出现此类错误,只需确保没有创建可能具有不同长度的表。