công thức truy vấn con là cách đúng đắn để làm điều đó, bây giờ chúng ta chỉ cần tạo truy vấn này với SqlAlchemy.
Hãy bắt đầu với truy vấn con:
sq = ssn.query(Log.id) \
.order_by(Log.id.desc()) \
.limit(1) \
.with_for_update()
Và bây giờ hãy sử dụng nó với as_scalar ( ) với ví dụ từ cập nhật () tài liệu :
from sqlalchemy import update
q = update(Log) \
.values({'analyzed': True}) \
.where(Log.id == sq.as_scalar())
In truy vấn để xem kết quả:
UPDATE logs
SET analyzed=:analyzed
WHERE logs.id = (
SELECT logs.id
FROM logs ORDER BY logs.id DESC
LIMIT :param_1
FOR UPDATE
)
Hãy tận hưởng!