SQLAlchemy有一种在Delete执行后返回结果的方法

时间:2017-06-26 12:50:46

标签: python sql python-2.7 sqlalchemy

我无法找到有关返回条款的等效解决方案

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。

1 个答案:

答案 0 :(得分:3)

要按原样执行查询,请使用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()