mysql 主键自增 但是报主键重复的异常问题探究- Duplicate entry
来源:互联网 发布:网络工作 编辑:程序博客网 时间:2024/05/17 23:49
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 主键自增 但是报主键重复的异常问题探究- Duplicate entry
- Hibernate自增主键因重复导致报错“Duplicate entry 'xxx' for key 'PRIMARY'”
- mysql InnoDB表插入操作报duplicate entry for primary 却查询不到重复的主键
- SSH框架HIBERNATE下MYSQL主键自增和hbm中increment ,entry duplicate column 问题
- mysql 主键重复问题解决 Duplicate entry '787192513' for key 'PRIMARY'
- 设置navicat数据库主键自增 1062报错以及result in duplicate entry '' for key 'primary'
- MySQL自增长主键探究
- mysql联合主键的自增问题
- MySQL自增主键删除后重复问题
- 更改mysql数据库主键自增时报错ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1
- mysql主键设置成auto_increment时,进行并发性能测试出现主键重复Duplicate entry 'xxx' for key 'PRIMARY'
- MySQL自增主键删除后插入新记录主键重复问题
- mysql主键自增
- mysql 主键自增
- mysql自增主键
- mysql iot 主键自增列问题
- on duplicate key update导致主键不连续自增的问题
- replace into导致mysql自增列导致主键重复问题分析
- 实现生产者-消费者模式
- 最大子数组II
- 【11.7】c++ primer plus 课后编程答案
- hdu 4004
- Java实现-最大子数组1
- mysql 主键自增 但是报主键重复的异常问题探究- Duplicate entry
- AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)
- Error setting expression 'orderid' with value ['2', ]
- 阿里云远程连接服务器oracle数据库
- Android 自定义View基础 onMeasure & onLayout
- 字符串的反转
- python和js
- Django 使用过程出现异常错误
- 6月4日,每日20行。