Цель: ограничить количество детей в отношениях «один ко многим» с минимальным количеством требуемых поездок в базу данных
, если у меня есть простой 1 ко многимотношения sql-alchemy, и я пытаюсь удалить детей, превышающих max_children
с помощью:
child.query.with_parent(parent).order_by(child.id.desc()).offset(max_children).delete()
Я получаю сообщение об ошибке:
sqlalchemy.exc.InvalidRequestError:Невозможно вызвать Query.update () или Query.delete (), когда offset () был вызван
duck-duck-go привел меня к этому обсуждению , но я все еще не уверен, как сделать это в 1 запросе.Вместо .delete()
я могу вызвать .all()
, а затем выполнить итерацию по списку, удаляя каждый элемент, но является ли это наиболее эффективным методом?