我資料庫這個資料才幾十萬個 主鍵是 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型別即可,十幾萬資料就自增到這個值,你要檢查一下你的自增規則和業務邏輯,否則以你的速度很快還會到上限