Python 实例<;xxx>;已在提交()后删除,但何时以及为什么?
这里有一段非常简单的代码。在将“poll”实例添加到数据库并提交之后,我以后无法读取它。SQLAlchemy失败,错误为:Python 实例<;xxx>;已在提交()后删除,但何时以及为什么?,python,sqlalchemy,Python,Sqlalchemy,这里有一段非常简单的代码。在将“poll”实例添加到数据库并提交之后,我以后无法读取它。SQLAlchemy失败,错误为: Instance '<PollStat at 0x7f9372ea72b0>' has been deleted, or its row is otherwise not present. 模块models.py中的PollStat: class PollStat(Base): __tablename__ = 'poll_stat' ts_ru
Instance '<PollStat at 0x7f9372ea72b0>' has been deleted, or its row is otherwise not present.
模块models.py中的PollStat:
class PollStat(Base):
__tablename__ = 'poll_stat'
ts_run = Column(Integer, primary_key=True)
ts_start = Column(DateTime, primary_key=True)
elapsed_ms = Column(Integer, default=None)
polled_tools = Column(Integer, default=0)
但如果我这样做:
class PollStat(Base):
__tablename__ = 'poll_stat'
id = Column(Integer, primary_key=True)
ts_run = Column(Integer)
ts_start = Column(DateTime)
elapsed_ms = Column(Integer, default=None)
polled_tools = Column(Integer, default=0)
它起作用了。为什么?您使用的是什么方言和dbapi提供程序?换句话说,您的连接URI以什么开始(例如,类似于
mssql+pyodbc
)?它可以归结为datetime
以防止在提交后检索行的方式存储。它是mysql://。Ilja关于约会时间的说法可能是对的。也许有一天我会试试看文件里有没有关于这个的东西。有趣的是,sqlalchemy并没有发出警告。
class PollStat(Base):
__tablename__ = 'poll_stat'
id = Column(Integer, primary_key=True)
ts_run = Column(Integer)
ts_start = Column(DateTime)
elapsed_ms = Column(Integer, default=None)
polled_tools = Column(Integer, default=0)