【发布时间】:2013-03-01 04:03:08
【问题描述】:
我遇到了一个问题,我必须使用 SqlAlchemy Core 查找表中是否存在数据。
我认为执行此查询的最佳方法是使用exists 方法,一旦找到第一个项目就会停止搜索。所以,我制作了这个版本的查询:
conn = self.db.connect()
query = exists().where(cookie_table.c.cookie_id == cookie_id)
result = conn.execute(query)
但它会产生这个错误:
StatementError: Not an executable clause (original cause: ArgumentError: Not an
executable clause) 'EXISTS (SELECT * \nFROM cookie \nWHERE cookie.cookie_id = ?)' []
我尝试稍微修改一下(结合select),但无济于事。
所以,最终我想出了另一个解决方案,使用 limit(1),它有效。
conn = self.db.connect()
query = select([1], cookie_table.c.cookie_id == cookie_id).limit(1)
result = conn.execute(query).fetchone()
return True if result is not None else False
我有两个问题:
使用exists方法如何完成任务?
使用limit 的查询是否与使用exists 一样高效?
【问题讨论】:
标签: python sqlalchemy exists