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

DELETE FROM items
WHERE sub_item_id IN %(sub_item_ids)s
RETURNING item_id, sub_item_id,


我在SQLAlchemy中做到了:

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

.delete(synchronize_session=False)


我需要在执行DELETE语句时返回item_id,sub_item_id集。

最佳答案

要按原样执行查询,请使用Core构造:

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()

08-24 19:51