gpt4 book ai didi

python - 删除 Django DB 中的重复行

转载 作者:太空狗 更新时间:2023-10-29 17:21:33 24 4
gpt4 key购买 nike

我有一个模型,由于代码错误,存在重复行。我现在需要从数据库中删除任何重复项。

每一行都应该有一个唯一的 photo_id。有没有简单的方法可以删除它们?还是我需要做这样的事情:

rows = MyModel.objects.all()
for row in rows:
try:
MyModel.objects.get(photo_id=row.photo_id)
except:
row.delete()

最佳答案

最简单的方法就是最简单的方法!特别是对于性能甚至无关紧要(除非确实如此)的一次性脚本。因为它不是核心代码,所以我只写第一个想到的并且有效的东西。

# assuming which duplicate is removed doesn't matter...
for row in MyModel.objects.all().reverse():
if MyModel.objects.filter(photo_id=row.photo_id).count() > 1:
row.delete()

使用 .reverse() 首先删除重复项并保留它的第一个实例,而不是最后一个。

一如既往,在你做这些事情之前备份。

关于python - 删除 Django DB 中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com