Python - SQLAlchemy使用exists()检查数据是否已经存在于表中?

时间:2013-09-03 04:18:03

标签: python sql sqlalchemy exists

所以我有以下Feeds类

class Feeds(DeclarativeBase):
    __tablename__ = "rawFeeds"

    id = Column(Integer, primary_key=True)
    link = Column('link', String)
    date = Column('date', String)
    source = Column('source', String)

def __init__(self, link, date, source):
    self.link = link
    self.date = date
    self.source = source

我想运行检查以查看表中是否已存在数据(以避免添加重复项)。我正在使用以下语句,但无论我尝试什么,它总是产生一个True结果

if session.query(exists().where(Feeds.link==item['link'][0])):
    print "Already exists"
else:
    #add to database

任何人都可以帮我弄清楚我做错了什么吗?我一遍又一遍地阅读SQLAlchemy文档,但我无法弄清楚这里的错误是什么。感谢。

1 个答案:

答案 0 :(得分:2)

session.query()根据文档返回一个Query对象:

http://docs.sqlalchemy.org/en/rel_0_7/orm/query.html

这意味着您的if语句将始终评估为true。