sqlalchemyのドキュメントには、PostgreSQL 8.1 以降では Query.with_lockmode('update_nowait') を使用して「FOR UPDATE NOWAIT」を指定できると記載されています。FOR UPDATE だけでなく FOR UPDATE NOWAIT を追加する方法を知っている人はいますか?
PostgreSQL 9.1.6
query = db.session.query(MyTable)\
.filter_by(process_status="PENDING")\
.order_by(MyTable.id)\
.with_lockmode('update_nowait')\
print query
SQL:
SELECT
MyTable.id AS MyTable_id
,MyTable.created_on AS MyTable_created_on
FROM MyTable
WHERE MyTable.process_status = :process_status_1
ORDER BY MyTable.id
FOR UPDATE