SQLite3 - 删除多列的重复项

Mil*_*ano 4 sqlite duplication row

我正在寻找最有效的方法来从表中删除重复项,其中 id 是唯一的,但当您检查其他列时有相同的行。

例子:

id   name   age   x
1   peter   25    II
2   peter   25    II
Run Code Online (Sandbox Code Playgroud)

该表有数万行。

zgg*_*guy 5

假设您没有引用该表的外键,您可以执行类似的操作

create table some_table as
select min(id), name, age, x
from t
group by name, age, x
Run Code Online (Sandbox Code Playgroud)

然后您可以删除旧表,重命名新表,使其与之前的旧表具有相同的名称,并在该表上创建索引和您需要的其他内容。

  • 在执行诸如此类的危险操作时,我喜欢将旧数据保留一小段时间。我不会删除旧表,而是重命名它。有时我吃完后很快就把桌子扔掉了。其他时候我会在几天或几周后放弃它。 (2认同)