Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从数据库表中删除重复记录的最佳方法是什么?_Mysql_Database_Postgresql_Duplicates - Fatal编程技术网

Mysql 从数据库表中删除重复记录的最佳方法是什么?

Mysql 从数据库表中删除重复记录的最佳方法是什么?,mysql,database,postgresql,duplicates,Mysql,Database,Postgresql,Duplicates,我在数据库中有一个不包含任何键的表,现在我想从完全重复的表中删除该行 那么,消除重复记录的最佳方法是什么 用户ROW\u NUMBER()函数具有分区依据 使用TEMP表-创建新TEMP表,并使用适当的唯一索引。将不同的行复制到其中截断旧表,重新插入数据并删除TEMP表 使用递归CTE 还有其他最好的选择吗,请提一下。期待回复。根据您的要求,您也使用了类似的查询 pool.query("DELETE FROM public.table1 x USING public.table1 y

我在数据库中有一个不包含任何键的表,现在我想从完全重复的表中删除该行

那么,消除重复记录的最佳方法是什么

  • 用户
    ROW\u NUMBER()
    函数具有
    分区依据
  • 使用
    TEMP
    表-
    创建
    TEMP
    表,并使用适当的
    唯一索引
    。将不同的行复制到其中<代码>截断
    旧表,重新插入数据并删除
    TEMP
  • 使用递归CTE

  • 还有其他最好的选择吗,请提一下。期待回复。

    根据您的要求,您也使用了类似的查询

    pool.query("DELETE FROM public.table1 x USING public.table1 y WHERE x.id < y.id AND x.column_name = y.column_name", (err,result) => {
        if(err) { console.log("Recode not delete...."+err); }
        if(result){ console.log('Duplicate recode deleted..'); }
    }); /* old all same recode deleted */
    
    pool.query(“使用public.table1 y从public.table1 x删除,其中x.id{
    if(err){console.log(“重新编码不删除…”+err);}
    如果(结果){console.log('replicate recode deleted..);}
    }); /* 删除旧的所有相同的重新编码*/
    

    根据需求变化情况。

    请用您正在使用的数据库标记您的问题:oracle、mysql、postgresql…?这是任何数据库的一般问题,如果它依赖于数据库,请描述postgresql和mysql。消除重复记录的最佳方法是什么?使用适当的唯一索引创建新表。将不同的行复制到其中。删除旧表并重命名新表。对于较大的数据集,可以更快地创建新表,只保留要保留的行。然后放下那张旧桌子。然后重命名新表,并对其进行适当的索引。你们的意思是说第二个选项。