解决Pyton3.4错误中长度和比例相同的外键(使用sqlalchemy)

2024-09-27 00:14:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张桌子

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][ODBC Driver 11 for SQL Server][SQL Server]Column 'RMMASTST.RecorderID' is not the same length or scale as referencing column 'StatsMetering.RecorderID' in foreign key 'FK__StatsMete__Recor__4B7734FF'. Columns participating in a foreign key relationship must be defined with the same length and scale. (1753) (SQLExecDirectW)")

有人知道我为什么老是犯这个错误吗?显然,这些都是剧本的摘录。所有表都是使用以下方法创建的:

Base.metadata.create_all(Engine)

Tags: keytruesqlbasestring错误columnclass

热门问题