SQLAlchemy 有没有办法在删除执行后返回结果

Ano*_*ari 4 python sql sqlalchemy python-2.7

我找不到有关 Returning 子句的等效解决方案

DELETE FROM items
WHERE sub_item_id IN %(sub_item_ids)s
RETURNING item_id, sub_item_id, 
Run Code Online (Sandbox Code Playgroud)

我在 SQLAlchemy 中这样做了:

purge_family = session.query(ItemItem).filter(ItemItem.sub_item_id.in_(sub_item_ids))

.delete(synchronize_session=False)
Run Code Online (Sandbox Code Playgroud)

我需要在执行 DELETE 语句时返回 item_id、sub_item_id 设置。

Ilj*_*ilä 6

要按原样执行查询,请使用核心结构:

stmt = ItemItem.__table__.delete().\
    where(ItemItem.sub_item_id.in_(sub_item_ids)).\
    returning(ItemItem.item_id, ItemItem.sub_item_ids)

results = session.execute(stmt).fetchall()
Run Code Online (Sandbox Code Playgroud)