2021年7月22日星期四

使用pymysql循环删除重复数据,并修改自增字段偏移值

创建表:

  CREATE TABLE `info` (
  `id` tinyint NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 

插入数据:INSERT INTO info(`name`) VALUE('张三'),('李四'),('麻婆'),('王五');

再插入一次:INSERT INTO info(`name`) VALUE('张三'),('李四'),('麻婆'),('王五');

再插入一次:INSERT INTO info(`name`) VALUE('张三'),('李四'),('麻婆'),('王五');

看见好多重复数据了吧,干掉它!

delete from info where info.id in 
(select tmp.id from
(select max(id) id from info group by `name` having count(`name`)>1 ) tmp
)
但这个办法,一次只能干掉重复数据的最大id,没关系,用循环嘛。
多来几次,世界清爽了:

  id name
  1 张三
  2 李四
  3 麻婆
  4 王五

再插入一次:INSERT INTO info(`name`) VALUE('麻老五');

  id name
  1 张三
  2 李四
  3 麻婆
  4 王五
  13 麻老五

但且慢,麻老五的id值变成了13,应该是5才对啊。看看创建表的过程,原来是设置了自增字段,delete 清除了数据,但没有清除自增字段值。

解决它:

先删除掉刚刚插人的这行,

查查现在有多少行:

select count(id) from info

重置自增字段偏移值为行数:
alter table info AUTO_INCREMENT = 4

现在再插入:INSERT INTO info(`name`) VALUE('麻老五');

  id name
  1 张三
  2 李四
  3 麻婆
  4 王五
  5 麻老五

用pymysql实现上述过程,完整代码如下: 

import pymysql

conn = pymysql.connect(host='xx.xxx.xxx.x', port=3306, user='root', passwd='root123', charset="utf8", db='luffydb')
cursor = conn.cursor()

# 功能:循环删除重复数据,并修改自增字段偏移值为count(id)。

sql = 'select max(id) from info group by `name` having count(`name`)>1'
cursor.execute(sql)
ret = cursor.fetchall() # 查询重复数据,但只取到重复数据的最大id,所以要用while循环,直到这个值为空。
while ret:
# 先删除查出的id
cursor.execute(delete from info where info.id in
(select tmp.id from
(select max(id) id from info group by `nam......

原文转载:http://www.shaoqun.com/a/892074.html

跨境电商:https://www.ikjzd.com/

taofenba:https://www.ikjzd.com/w/1725

tradekey:https://www.ikjzd.com/w/1630

转口贸易:https://www.ikjzd.com/w/1427


创建表:  CREATETABLE`info`(  `id`tinyintNOTNULLAUTO_INCREMENT,  `name`varchar(20)NOTNULL,  PRIMARYKEY(`id`)  )ENGINE=InnoDBAUTO_INCREMENT=0DEFAULTCHARSET=utf8插入数据:INSERTINTOinfo(`name`)VALUE('张三'
天津海魔方7月18盛大开园,邀您一起来体验:http://www.30bags.com/a/427608.html
天津话怎么说,经典天津话,常用的天津话:http://www.30bags.com/a/426674.html
天津加强景区安全和防汛工作:http://www.30bags.com/a/434801.html
天津经典美食:煎饼果子 - :http://www.30bags.com/a/410067.html
我和合租女人的疯狂偷情故事(5/5):http://lady.shaoqun.com/a/54422.html
校花被校长啪到腿软 啊校长你慢点啊好大啊:http://lady.shaoqun.com/a/247765.html
挺进白嫩老师的下面 老师把屁股撅起来叫再浪一点:http://lady.shaoqun.com/a/247322.html
口述和少妇在阳台上做了 小东西我们今天换一种姿势:http://lady.shaoqun.com/m/a/248024.html
征服男人用爱情还是性爱?聪明的女人会这么做 :http://lady.shaoqun.com/a/428395.html
男女出轨都为了什么?婚姻出轨的7个动机你知道吗 :http://lady.shaoqun.com/a/428396.html
如果一个女人堕胎了,她身上通常会有几个明显的痕迹,仔细观察就能发现:http://lady.shaoqun.com/a/428397.html
男生第一次谈恋爱的方式:http://lady.shaoqun.com/a/428398.html

没有评论:

发表评论