在SQLAlchemy中按主键删除模型

时间:2014-04-29 09:06:36

标签: python sqlalchemy

是否有可能删除模型(不确定它是在SQLAlchemy中调用的,我来自Django)而不实际查询并加载会话中的完整对象? IE浏览器。像这样的东西:

a = MyModel()
a.uid = 2             # this is the primary key
sess.delete(a)

然而,这会引发错误:sqlalchemy.exc.InvalidRequestError: Instance '<MyModel at 0x7f69d112e210>' is not persisted

我不想instance = session.query(MyModel).filter_by(uid=1).first()然后delete,因为我已经有了ID,我不想做无用的查询。

2 个答案:

答案 0 :(得分:12)

如果您不想使用原始SQL,ORM查询也可以delete objects

session.query(MyModel).filter(MyModel.uid == 2).delete()
session.commit()

答案 1 :(得分:0)

然后,为什么你不能使用像this

这样的session.execute
session.execute(
        "DELETE FROM mymodal WHERE uid=:param",
        {"param":2}
    )
session.flush()