美文网首页
MySQL重新组织自增长id

MySQL重新组织自增长id

作者: 不爱吃饭的小孩怎么办 | 来源:发表于2019-12-11 16:15 被阅读0次

表里的id是主键,并且是自增长的。有天发现id乱了,这个时候想根据另一个字段进行排序,我不可能重新导出来用程序处理,怎么办呢,突然想到一个办法:
基本思路是通过insert into xxx select * from yyyy 这种方法,加上排序,就可以生成正确的序列。
chat_tbl是原表,chat2是临时表。

#复制一个空的临时表,结构与chat_tbl一致:
mysql> create table chat2 like chat_tbl;
Query OK, 0 rows affected (0.02 sec)

#将chat_tbl中数据,根据msg_id字段重新排序后导入chat2。也可以根据server_time字段,反正根据实际业务需要进行排序。
mysql> insert into chat2(msg_id,member,type,server_time,local_time,group_name,text,file_name,local_path,url,location,md5) select msg_id,member,type,server_time,local_time,group_name,text,file_name,local_path,url,location,md5 from chat_tbl order by (msg_id + 0) asc;
Query OK, 730305 rows affected (6.80 sec)
Records: 730305  Duplicates: 0  Warnings: 0

#检查第一条和最后一条数据,确认正确
mysql> select * from chat2 where id = 1;
......
mysql> select * from chat2 where id = 730305;
......

#删除表chat_tbl
mysql> drop table chat_tbl;
Query OK, 0 rows affected (0.04 sec)

#将表chat2重命名为chat_tbl;
mysql> alter table chat2 rename to chat_tbl;
Query OK, 0 rows affected (0.01 sec)

70W条数据,非常快!
大功告成!

相关文章

  • MySQL重新组织自增长id

    表里的id是主键,并且是自增长的。有天发现id乱了,这个时候想根据另一个字段进行排序,我不可能重新导出来用程序处理...

  • mysql重置id自增长

    sql语句:truncate table tablename; 会清空表的所有记录。 navicat的截断表。

  • Redis 序列号实现

    实现ID自增长,如MySQL的自增长序列ID。但这个要求该字段是表中的ID字段,使用场景有限制,并且在系统开发中,...

  • mysql自增ID跳跃增长

    #1、查看现在mysql自增id的配置 show variables like '%increment%'; #2...

  • MySql常用命令和SQL技巧

    在ID是自增长的情况下获取刚插入数据的ID 在MYSQL中可以使用@@IDENTITY或者LAST_INSERT_...

  • 分布式主键

    mysql 自增id 自增id 缺点 :1 mysql insert 后 必须 SELECT LAST_INSE...

  • Postgresql自增长ID

    Postgresql 的自增长ID是建立于序列之上的,首先需要建立一个序列,然后再在字段的默认值中设置为序列。 1...

  • 关于 mysql 事务中的自增 id 的疑问

    mysql 的自增id 在事务回滚后会怎么样? mysql 的自增id 是什么时候生成id的? 开始一个试验: 创...

  • [mysql] 如何让string类型ID 实现自增长

    mysql里 如何让string类型ID 实现自增长?这里有2种方法:首先,数据库类型中能实现自增比较常见的是in...

  • MySQL表自增id用完了该怎么办?

    我们知道MySQL表可以定义一个自增长的id,如果我们的表没有指定主键字段,那MySQL会给我们的表创建一个不可见...

网友评论

      本文标题:MySQL重新组织自增长id

      本文链接:https://www.haomeiwen.com/subject/jmzogctx.html