ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'
测试环境
1.MYSQL版本
+------------+
| version() |
+------------+
| 5.7.18-log |
+------------+2.建表语句
mysql> show create table M; CREATE TABLE
create table `M` (`id` int(10) NOT NULL DEFAULT '0',`domain` varchar(255) DEFAULT NULL,`ip` int(10) unsigned DEFAULT NULL,`ipv6` varbinary(16) DEFAULT NULL,`intime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `domain` (`domain`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 3.表结构mysql> desc M;
+-----------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+-------------------+-----------------------------+
| id | int(10) | NO | PRI | 0 | |
| domain | varchar(255) | YES | UNI | NULL | |
| ip | int(10) unsigned | YES | | NULL | |
| ipv6 | varbinary(16) | YES | | NULL | |
| intime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-----------+------------------+------+-----+-------------------+-----------------------------+测试如下:在建表的时候没有使用自增ID,这样会引业务后续出现小问题,现在通过数据交换的方式更改M表ID为自增ID注:生产环境谨慎执行1.直接更改M表时,是更改不了的,有主键冲突
mysql> alter table M change id id int not null auto_increment;
ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'2.可以用数据交换的方式来进行更改,创建新表M_newmysql> CREATE TABLE M_new LIKE M;Query OK, 0 rows affected (0.49 sec)3.更改新表M_new为自增IDmysql> ALTER TABLE M_new -> CHANGE COLUMN `Id` `Id` INT(10) NOT NULL AUTO_INCREMENT;
Query OK, 0 rows affected (0.79 sec)
Records: 0 Duplicates: 0 Warnings: 04.将M表数据插入到M_new表中,注意select的列是除了ID列mysql> insert into M_new (domain,ip,ipv6,intime) select domain,ip,ipv6,intime from M;5.数据插入完成后,交换表名
mysql>RENAME TABLE M TO M_old, M_new TO M;Query OK, 0 rows affected (0.34 sec)6.再次查看M表,现在是自增ID了mysql> desc M;
+-----------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+-------------------+-----------------------------+
| Id | int(10) | NO | PRI | NULL | auto_increment |
| domain | varchar(255) | YES | UNI | NULL | |
| ip | int(10) unsigned | YES | | NULL | |
| ipv6 | varbinary(16) | YES | | NULL | |
| intime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
|+-----------+------------------+------+-----+-------------------+-----------------------------+
ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'相关推荐
- ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1‘ for key ‘PRIMARY‘
ERROR 1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key ...
- 更改mysql数据库主键自增时报错ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1
当我用SQLyog尝试修改已有记录的mysql数据表的主键为自动增长时,报出以下错误 ALTER TABLE causes auto_increment resequencing, resulting ...
- ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key
ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1′ for key 问题:表中存在主键为0 ...
- 【mysql】ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key ‘PR
设置主键字段为自动递增时语句报错 ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1′ fo ...
- 【MYSQL报错】ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry
解决方案: 将主键字段值为0的那条记录值改为其他大于0且不重复的任意数 修改主键字段为auto_increment 把刚才修改过的那条记录的值还原
- ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key
问题:表中存在主键为0的一条数据. 解决:把主键为0的这条数据的值(主键id=0)改为其他不重复的值即可. 然后在修改自动递增. 转载于:https://www.cnblogs.com/kamback ...
- 修改数据库主键为自增长时报错“[Err] 1062 - ALTER TABLE causes auto_increment resequencing, resulting in duplicate ”
修改数据库主键为自增长时报错: [Err] 1062 - ALTER TABLE causes auto_increment resequencing, resulting in duplicate ...
- mysql重新设置主键生成策略为auto_increment时报错:resulting in duplicate entry '1' for key 'PRIMARY'
现在有一个标签表,里面已经填入了一些数据了,想把主键生成策略改成自增的: ALTER TABLE `tags` CHANGE COLUMN `Id` `Id` INT(11) NOT NULL AUT ...
- 关于逆向工程,解决mysql数据库遇到的1406问题,ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'
先说逆向过程,先是在PowerDesginer这个软件上生成数据表,然后生成sql脚本, 生成sql脚本: 然后在命令行进行数据生成. 1.连接mysql数据库 2.use 数据库(其中一个空数据库) ...
最新文章
- 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元
- SAP MM初阶之ME12里为啥只能维护少量条件类型的价格?
- python怎么在电脑上使用-使用python在本地电脑上快速处理数据
- 字节码学院之map介绍
- pyharm虚拟环境_手把手教你如何在Pycharm中加载和使用虚拟环境
- 1230: 最小花费(spfa)
- 轻量NuGet服务—BaGet
- 详解 QT 主要类 QWidget
- 技术水平低,就这还敢写自动化项目实战经验丰富?
- 二维码扫描ZXing简化
- 扩充你的工具箱 - 大行文件的处理
- mysql5.6.31安装及配置
- 使用Xdebug调试和优化PHP程序[3]
- OpenCV人工智能图像处理学习笔记 第5章 计算机视觉加强之图像美化
- Java对象转Map
- 多元函数中的偏导数全导数以及隐函数
- (翻译)关系型数据库工作原理(二)
- Mac上实时网速、内存等显示
- python量化分析前景_Python3 量化分析笔记从小白到破产-学习路线规划
- 【案例】 生成词云玩玩?