sqlalchemy的文档说您可以使用 Query.with_lockmode('update_nowait') 在 PostgreSQL 8.1 以上指定“FOR UPDATE NOWAIT”。有谁知道如何让它添加 FOR UPDATE NOWAIT 而不仅仅是 FOR UPDATE?
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