SQLAlchemy:检查表中是否已存在对象

mis*_*tor 12 python sqlalchemy python-3.x

我有一个类,Itemid是一个主键并自动生成.现在我从其他外部源读取数据,创建一个Item对象,并需要检查我的items表中是否已存在此对象.我该怎么做?

Sal*_*ami 13

最有效的方法是使用exists()

q = session.query(Item.id).filter(Item.email==email)
session.query(q.exists()).scalar()    # returns True or False
Run Code Online (Sandbox Code Playgroud)


Nat*_*usa 11

您可以查询具有相同属性的项目,并检查计数是否大于零.

if session.query(Item.id).filter(Item.email==newItem.email,
                                 Item.type==newItem.type).count() > 0:
    // item exists
Run Code Online (Sandbox Code Playgroud)

  • @kalu:"明确比隐含更好." - Python的禅宗 (7认同)
  • 使用count使数据库在需要时做更多的工作.请参阅下面的答案以获得有效的方法. (2认同)