在SQLAlchemy中按主键删除模型

2024-04-19 18:40:23 发布

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

是否可以删除一个模型(不确定它在SQLAlchemy中的名称,我来自Django),而不实际查询和加载会话中的完整对象?例如,类似这样的事情:

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,我不想做无用的查询。在


Tags: the对象djangokey模型名称uidsqlalchemy
2条回答

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

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

那么,为什么不能像this那样使用session.execute

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

相关问题 更多 >