84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我数据库这个数据才几十万条 主键是 int 11 然后以前能插入 现在插入 就会报这个错误 求解答 谢谢
首先说讲清楚几个概念
int(11) 和int(3) 存储的值的最终大小是一样的,这个3和11 是在终端显示的时候数字长度,和存储数字大小和长度无关
11万的数据,你的主键应该不是步长加1,或者你id也可能不是自增0开始的。
还有楼上的已经说清楚原因,说是主键的值重复,那就先去数据库找找这条记录,然后再看看 10多万的数据,怎么主键到了4294967295
2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647 int型无符号 4294967296 最大值
这说是键重复了,试试这个,不保证有用····step 1: select max(your primary_key_field) from your_table_name; step 2: ALTER TABLE your_table_name AUTO_INCREMENT = value_u_got_from_step1 + 1;
id自增已达上限,再插入数据也只能插入这个id值,所以才会冲突,改成bigint类型即可,十几万数据就自增到这个值,你要检查一下你的自增规则和业务逻辑,否则按你的速度很快还会到上限
首先说讲清楚几个概念
int(11) 和int(3) 存储的值的最终大小是一样的,这个3和11 是在终端显示的时候数字长度,和存储数字大小和长度无关
11万的数据,你的主键应该不是步长加1,或者你id也可能不是自增0开始的。
还有楼上的已经说清楚原因,说是主键的值重复,那就先去数据库找找这条记录,然后再看看 10多万的数据,怎么主键到了4294967295
2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647 int型无符号 4294967296 最大值
这说是键重复了,试试这个,不保证有用····
step 1: select max(your primary_key_field) from your_table_name;
step 2: ALTER TABLE your_table_name AUTO_INCREMENT = value_u_got_from_step1 + 1;
id自增已达上限,再插入数据也只能插入这个id值,所以才会冲突,改成bigint类型即可,十几万数据就自增到这个值,你要检查一下你的自增规则和业务逻辑,否则按你的速度很快还会到上限