mysql 主键自增 但是报主键重复的异常问题探究- Duplicate entry
2017-06-04 17:30
489 查看
1、mysql数据库设置数据库主键自增的规律
·第一,在主键字段上增加 AUTO_INCREMENT`id` int(8) NOT NULL AUTO_INCREMENT COMMENT '主键',
·第二,默认表的第一条数据是从1开始计数的,但是在建表语句中是可以修改这个起始值的,比如下面就是设置为11为基值,下一次插入的是12
CREATE TABLE 'table_name'(
)ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='某某表'
而且通过可视化工具可以发现,这个基本值一直是在变化的,即每次增加一个,这个自动增量的意思是,当自动插入下一个数据时,主键的为8
2、问题描述
在一个操作过程中,出现了这样的描述,即6这个主键在数据库中已经存在了Duplicate entry '6' for key 'PRIMARY'
3、问题分析
网上大概说明有这么几种情况1、数据库该字段已经自增到了最大值
2、数据库表结构损坏(一般是由于频繁手动修改数据导致的)
3、由于手动插入了较大数据,导致mysql自增到这个较大数值时主键重复了
4、问题复现
很遗憾在后来的操作中,问题并没有能够复现但是在一个相隔很多天的试验中出现了另外一个问题
开始主键是自增的,一致自增到了5,后来修改了数据库基数为100
然后自增了一些数据
过来两天,再次执行自增的时候居然报错了,而且不是明显的错误
后来把100等之后添加的数据删除,自增测试程序又正常了
5、问题总结
对于mysql 数据库而言,在自增主键的时候,手动修改数据要比较慎重,最好遵循三个原则1、手动添加数据和自动添加数据不要混淆,即手动的就是手动的,避免和自动添加数据的主键重复
2、手动更改数据的时候,不要更改主键,只是修改其余字段
3、自增数据情况下,不要修改表的自增基数
相关文章推荐
- 如何避免mysql 主从同步中由于数据记录找不到和主键重复错误导致的同步异常问题
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分 4000 析过程
- mybatis-generator生成的代码,mysql插入操作时主键重复问题
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- INNODB自增主键的一些问题 vs mysql获得自增字段下一个值
- MySQL自增主键删除后插入新记录主键重复问题
- 深入探寻mysql自增列导致主键重复问题的原因
- j2ee的web项目怎么防止,重复提交的问题?(即点击了提交,后台新增了两条数据,也就是说,其实是点了多次提交,发起了多次http url,这样就插入了多条相同数据,但是主键id是不同的)
- replace into导致mysql自增列导致主键重复问题分析
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- mysql 主从复制 双主从复制原理 防止主键重复问题(必看)
- MySQL主键重复问题解决 Duplicate entry '787192513' for key 'PRIMARY'
- mysql 主键重复问题解决 Duplicate entry '787192513' for key 'PRIMARY'
- mysql应用过程中出现的主键重复的问题
- 新安装的Mysql5.5数据库使用mybatis提示插入数据成功并且主键已经自增,但是数据表中没有数
- mysql 主从复制 双主从复制原理 防止主键重复问题(必看)
- MySQL生产库Insert了2次同样的记录但是主键ID是不一样的问题的分析过程
- 深入探寻mysql自增列导致主键重复问题的原因
- MySQL自增主键删除后插入新记录主键重复问题