mysql的自增id 用完了怎麼辦?
create table test_auto_increment_id(id int UNSIGNED auto_increment PRIMARY KEY,name VARCHAR(255));
執行sql語句
這個時候還沒有什麼數據
insert into test_auto_increment_id (id,name) VALUES(null,'liuyuanyuan')
插入一條數據
這明顯不行啊,一條一條插入到啥時候了
最大當前聲明的自增ID最大是多少,由於這裏定義的是intunsigned,所以最大可以達到2的32冪次方 - 1 = 4294967295
可以取巧
create table test_auto_increment_id2(id int UNSIGNED auto_increment PRIMARY KEY ,name VARCHAR(255)) auto_increment = 4294967295;
執行insert into test_auto_increment_id2 (id,name) VALUES(null,'liuyuanyuan');
再插入一條
報錯1062
[SQL]insert into test_auto_increment_id2 (id,name) VALUES(null,'liuyuanyuan');
[Err] 1062 -
https://blog.csdn.net/xc_zhou/article/details/80952409
1062爲主鍵衝突
4294967295,這個數字已經可以應付大部分的場景了,如果你的服務會經常性的插入和刪除數據的話,還是存在用完的風險,建議採用bigint unsigned,這個數字就大了。
bigint(19)應該用於大數據量場景吧
id int:id的存放是int類型 可以爲負數
id int unsigned:id的存放是int類型,但是不能爲負數。
auto_increment:自動編碼,從正數開始,不會有負數,使用其的列不能插入數據。
bigint 帶符號的範圍是-9223372036854775808到9223372036854775807。無符號的範圍是0到18446744073709551615。
int 普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。