SQLAlchemy:如何检查数据库中是否存在

时间:2011-08-11 07:32:25

标签: sqlalchemy

有没有比使用sqlalchemy更好的方法?

def has_keyword(self, kw):
        s = self.sessionmaker()
        return 0 < s.query(Keyword).filter(kw.word == kw.word)

2 个答案:

答案 0 :(得分:2)

通过将.count()添加到结尾

,可以使查询略微更优化

ex:return 0&lt; s.query(Keyword).filter(kw.word == kw.word).count()

答案 1 :(得分:0)

我喜欢用Pythonic的方式:

query = session.query(Model).filter( ... )
try:
    model = query.one()
except NoResultFound:
    # it does not exist!
except MultipleResultsFound:
    # there are more than one matching the filter criteria!

这样可以创建一个不存在的新模型,并警告用户是否存在多个模型(选择第一个等)。