搜索

首页  >  问答  >  正文

php - 报错 1062:键“PRIMARY”的重复条目“4294967295”

我数据库这个数据才几十万条 主键是 int 11 然后以前能插入 现在插入 就会报这个错误
求解答 谢谢

漂亮男人漂亮男人2722 天前1103

全部回复(3)我来回复

  • ringa_lee

    ringa_lee2017-06-17 09:17:21

    首先说讲清楚几个概念

    1. int(11) 和int(3) 存储的值的最终大小是一样的,这个3和11 是在终端显示的时候数字长度,和存储数字大小和长度无关

    2. 11万的数据,你的主键应该不是步长加1,或者你id也可能不是自增0开始的。

    3. 还有楼上的已经说清楚原因,说是主键的值重复,那就先去数据库找找这条记录,然后再看看 10多万的数据,怎么主键到了4294967295

    4. 2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647 int型无符号 4294967296 最大值

    回复
    0
  • 世界只因有你

    世界只因有你2017-06-17 09:17:21

    这说是键重复了,试试这个,不保证有用····
    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;

    回复
    0
  • PHP中文网

    PHP中文网2017-06-17 09:17:21

    id自增已达上限,再插入数据也只能插入这个id值,所以才会冲突,改成bigint类型即可,十几万数据就自增到这个值,你要检查一下你的自增规则和业务逻辑,否则按你的速度很快还会到上限

    回复
    0
  • 取消回复