博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL对于有大量重复数据表的处理方法
阅读量:4706 次
发布时间:2019-06-10

本文共 605 字,大约阅读时间需要 2 分钟。

需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u)。但是对于每个key(col1)表中已经有大量重复数据。此时,做数据的手工清理,或者SQL处理是非常耗时的。

MySQL有一个独有的 alter ignore add unique index的语法。

 

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name

行为类似于insert ignore,即遇到冲突的unique数据则直接抛弃而不报错。对于加唯一索引的情况来说就是建一张空表,然后加上唯一索引,将老数据用insert ignore语法插入到新表中,遇到冲突则抛弃数据。

 

点:alter ignore的语法不支持innodb,所以需要把table的引擎改为MyISAM;

解决方案

 

ALTER TABLE tableA ENGINE MyISAM;   /*注意:修改表结构为MyISAM */ALTER IGNORE TABLE tableA ADD UNIQUE INDEX idx_col1_u (col1); /*添加唯一索引,消重*/ALTER TABLE table ENGINE InnoDB;    /*可选,修改表结构为InnoDB */

 

 

转载于:https://www.cnblogs.com/james1207/p/3320138.html

你可能感兴趣的文章
应用nslookup命令查看A记录、MX记录、CNAME记录和NS记录
查看>>
APT攻击
查看>>
做衡八的日子(转自VFleaking)
查看>>
day7.条件和循环
查看>>
(转)log4j(二)——如何控制日志信息的输出?
查看>>
JavaScript简介
查看>>
php.ini中safe_mode开启对PHP系统函数的影响
查看>>
gdb
查看>>
字符串与整数、浮点数、无符号整数之间的转换常用函数
查看>>
ubuntu清理旧内核
查看>>
有关UIImageView+AFNetworking 下载图片的线程问题
查看>>
Node之安装篇
查看>>
Android的Animation之LayoutAnimation使用方法
查看>>
二分图最大匹配算法-Hopcroft-Karp模板
查看>>
发布和订阅的删除
查看>>
如何使用qtp12 utf进行功能测试
查看>>
使用LinQ进行增删改查
查看>>
索引作用 和缺点
查看>>
eclipse 背景颜色
查看>>
Tomcat连接池配置-DBCP
查看>>