1. 程式人生 > 實用技巧 >MySQL自增id用完了

MySQL自增id用完了

每日一笑

母親領著女兒來到精神病院。
母親說:“大夫,這姑娘從一年前開始犯病,嘴裡在說:‘我要下金蛋啦。’而且叭噠叭噠扇動手腳,還咯咯咯地學雞叫!”
“我明白了。儘管她病成這樣,你做母親的卻整整一年沒有干涉她!”
“是呀,我想八成她真會下金蛋,所以耐心觀察了一年。”

今天遇到了一個問題,當mysql中的自增id用完後再插入資料會怎樣?

既然遇到這個問題,就去實踐一下吧。

首先建立一個只包含自增id的資料表

create table id_test2(id int unsigned auto_increment primary key);

但是這樣並沒有足夠的資料來使id用完,int型別最大可以達到2的32次方減1,也就是4294967295。

我們可以通過在建立表時,將初始值設定為4294967295

create table id_test(id int unsigned auto_increment primary key)  auto_increment = 4294967295;

然後插入一條資料後,其id就會是4294967295

INSERT INTO t1 VALUES(NULL)

然後再插入資料,直接報錯了

4294967295這個大小在大部分場景中已經足夠用了,如果服務需要經常的插入和刪除的話,還是存在一些風險的。

如果int的大小不夠用,可以使用bigint型別,bigint帶符號的範圍是-9223372036854775808到9223372036854775807。無符號的範圍是0到18446744073709551615。