如何删除切片

时间:2015-03-11 04:44:29

标签: mysql django

有没有办法在django中执行以下操作?

Catalog.objects.all()[:10000].delete()

如果我一次尝试删除所有内容,它会引发TimeoutError,如果我尝试迭代所有内容一次删除每个对象,则需要永久。

1 个答案:

答案 0 :(得分:0)

也许你想要这样的东西:

batch_size = 10000
max_id = Catalog.objects.order_by('-id')[0].id
for start in range(0, max_id, batch_size):
    end = min(start + batch_size, max_id)
    Catalog.objects.filter(pk__gte=start, pk__lte=end).delete()