使用 SqlAlchemy,是否可以构建一个只更新第一个匹配行的查询?
就我而言,我需要更新最新的日志条目:
class Log(Base):
__tablename__ = 'logs'
id = Column(Integer, primary_key=True)
#...
analyzed = Column(Boolean)
session.query(Log) \
.order_by(Log.id.desc()) \
.limit(1) \
.update({ 'analyzed': True })
结果是:
InvalidRequestError: 调用 limit() 时无法调用 Query.update()
这是有道理的,因为UPDATE ... LIMIT 1
它是 MySQL 独有的功能(使用此处给出的解决方案)
但是我如何对 PostgreSQL 做同样的事情呢?可能,使用子查询方法?