gpt4 book ai didi

mysql - 对大型表中多列共享相同值的条目进行重复数据删除

转载 作者:行者123 更新时间:2023-11-29 07:49:58 25 4
gpt4 key购买 nike

我们有一个很大的“收藏夹”表,但我们遇到了一个问题,该问题揭示了我们对 userfavorite_type 没有唯一约束的事实和favorite_id。我已经进行了迁移,将为这 3 个添加索引,但它不起作用,因为我们现有的数据具有相同的条目集。其中还有其他数据(updated_atcreated_atid),丢失也没关系,但会使其成为不完美的匹配。

rails (3.2.x) 中有没有办法做到这一点,或者 (my)SQL 有没有办法做到这一点?

我知道我可以提取所有这些,然后进行分组,并映射所有额外元素的删除,但它是一个非常大的表(100 万+),我们不能进行长时间运行的迁移。

最佳答案

将表结构复制到新表,添加唯一约束,然后插入所有记录。由于限制,重复项将失败。

CREATE TABLE tableTmp LIKE table;

添加约束,然后将所有记录插入到临时表中。

INSERT INTO tableTmp SELECT * FROM table

验证条目,然后删除并重命名。

DROP TABLE table;
RENAME TABLE tableTmp TO table;

关于mysql - 对大型表中多列共享相同值的条目进行重复数据删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747614/

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