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