如何限制django orm更新查询与order by

时间:2014-03-05 17:09:38

标签: django django-models sql-update limit

我必须限制django ORM Model对象中要更新的记录数。

我试过了

CustomObject.objects.filter(column_x='XXX').update(column_y='YYY')[:10]

但更新时不允许切片。

并且不想单独获取id并使用这些id进行更新,因为记录的数量非常大(100万到8000万),对命中数据库感兴趣。

2 个答案:

答案 0 :(得分:3)

使用嵌套查询:

nested_q = CustomObject.objects.filter(column_x='XXX')[:10]
CustomObject.objects.filter(pk__in=nested_q).update(column_y='YYY')

答案 1 :(得分:1)

我不认为这是可能的,因为对于id,您不必加载所有记录一次,加载切片,更新它然后下一个切片。见this example