php - 報錯 1062:Duplicate entry '4294967295' for key 'PRIMARY'
漂亮男人
漂亮男人 2017-06-17 09:15:21
0
3
1099

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

漂亮男人
漂亮男人

全部回覆(3)
左手右手慢动作

先說清楚幾個概念

  1. int(11) 和int(3) 儲存的值的最終大小是一樣的,這個3和11 是在終端顯示的時候數字長度,和儲存數字大小和長度無關

  2. 11萬的數據,你的主鍵應該不是步長加1,或者你id也可能不是自增0開始的。

  3. 還有樓上的已經說清楚原因,說是主鍵的值重複,那就先去數據庫找找這條記錄,然後再看看 10多萬的數據,怎麼主鍵到了4294967295

  4. 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_

洪涛

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板