Python 实例<;xxx>;已在提交()后删除,但何时以及为什么?

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

这里有一段非常简单的代码。在将“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_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)