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 で同じことを行うにはどうすればよいでしょうか? おそらく、サブクエリアプローチを使用していますか?