搜尋

首頁  >  問答  >  主體

php - 報錯 1062:Duplicate entry '4294967295' for key 'PRIMARY'

我資料庫這個資料才幾十萬個 主鍵是 int 11 然後以前能插入 現在插入 就會報這個錯誤
求解答 謝謝

漂亮男人漂亮男人2796 天前1139

全部回覆(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_

    回覆
    0
  • PHP中文网

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

    id自增已達上限,再插入資料也只能插入這個id值,所以才會衝突,改成bigint型別即可,十幾萬資料就自增到這個值,你要檢查一下你的自增規則和業務邏輯,否則以你的速度很快還會到上限

    回覆
    0
  • 取消回覆