好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 關于MySQL自增ID的一些小問題總結

關于MySQL自增ID的一些小問題總結

熱門標簽:400電話申請信用卡 在哪里申請400電話 巫師三血與酒地圖標注 安徽ai電話電銷機器人有效果嗎 外呼系統電銷受騙 銷售語音電話機器人 萊西市地圖標注 走過哪個省地圖標注 常州網絡外呼系統開發

下面這幾個小問題都是基于 InnoDB 存儲引擎的。

1. ID最大的記錄刪除后,新插入的記錄ID是什么

例如當前表中有ID為1,2,3三條記錄,把3刪除,新插入記錄的ID從哪兒開始?

答案: 從4開始。

實驗

創建表 tb0,ID自增:

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

插入3條記錄:

insert into tb0 values(null);

刪除ID為3的記錄:

delete from tb0 where id=3

查看當前自增值:

show create table tb0;

# 結果
CREATE TABLE `tb0` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

自增ID為4,刪除ID最大的記錄并不影響自增ID的值。

2. MySQL 重啟后自增ID從哪兒開始

例如當前表中有ID為1,2,3三條記錄,把3刪除,重啟MySQL,新插入記錄的ID從哪兒開始?

很多人會認為從4開始,實際是從3開始。

因為InnoDB的自增值是記錄在內存的,不是記錄在數據文件的。

重啟后,會把 當前最大ID + 1 作為起始值。

實驗

創建表 tb1,ID自增:

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

添加3條數據記錄:

insert into tb1 values(null);

刪除ID為3的記錄:

delete from tb1 where id=3

通過上一個問題,我們知道,此時自增ID值為4。

重啟MySQL。

查看當前的自增值:

show create table tb1;

# 結果
CREATE TABLE `tb1` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1

3. 手動插入ID后,下次插入時自增值是多少

例如當前的自增ID為4,新插入記錄時,手動指定ID為10,下次使用自增方式插入時,ID是 11。

ID自增值 = 當前最大ID + 1

在插入新記錄時,就已經計算得出了新的ID值

實驗

創建表 tb2,ID自增:

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

添加記錄:

insert into tb2 values(null);

手動指定ID:

insert into tb2 values(4294967000);

查看當前的自增值:

show create table tb2;

# 結果
CREATE TABLE `tb2` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4294967001 DEFAULT CHARSET=latin1

可以看到自增值變為 4294967001。

4. 自增值用完后怎么辦

無符號 int 的最大值為 4294967295,自增值達到此值后,就不變了,新插入記錄時就會報錯:

Duplicate entry '4294967295' for key 'PRIMARY'

如果表記錄經常插入、刪除,即使表內記錄總量不是很大,ID也可能快速用完,這種情況可以需要使用 bigint。

int 取值范圍:

int 是 4 byte,首位用來表示符號

有符號的范圍:
從 -  至  - 1

(-2147483648 至 2147483647)

無符號的范圍:
0 至  - 1

(0 至 4294967295)

bigint 取值范圍:

int 是 8 byte

有符號的范圍:
從 -  至  - 1

(-9223372036854775808 至 9223372036854775807)

無符號的范圍:
0 至  - 1

(0 至 18446744073709551615)

小結

通過實驗可以發現InnoDB中自增ID的一些特性:

插入新記錄時,就會計算出新的自增值(最大ID+1),不管是使用自動ID,還是手動指定一個ID。

刪除最大ID值對自增ID值沒有影響,但MySQL重啟之后有影響,不會使用之前的自增ID值,而是使用最大ID+1,因為自增ID值是存在內存中,重啟后需要重新計算。

自增ID用完后就不變了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL的自增ID(主鍵) 用完了的解決方法
  • 關于mysql自增id,你需要知道的
  • MySQL表自增id溢出的故障復盤解決
  • 關于Mysql自增id的這些你可能還不知道
  • mysql自增id超大問題的排查與解決
  • MySQL分表自增ID問題的解決方法
  • 線上MySQL的自增id用盡怎么辦

標簽:河北 陽江 煙臺 鞍山 黃石 果洛 來賓 赤峰

巨人網絡通訊聲明:本文標題《關于MySQL自增ID的一些小問題總結》,本文關鍵詞  關于,MySQL,自增,的,一,些小,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于MySQL自增ID的一些小問題總結》相關的同類信息!
  • 本頁收集關于關于MySQL自增ID的一些小問題總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 成人亚洲网| 黄色软件下载网址| 国产精品亚洲成在人线| 国产伦精品一区二区三区男妓| 天堂网在线观看| 男按摩师揉我奶头和花蒂| 双性ntr| 跟40岁的少妇做一次就不硬了| 夜夜穞天天穞狠狠穞AV美女按摩| 曰本一级毛片免费| 嗯啊轻点| 亚洲vs无码秘?蜜桃少妇 | 在线97| 色狠狠色噜噜AⅤ天堂一区| 蜜桃秘?av一区二区三区| 国产成人一区二区三区视频免费| 最新最好看免费毛片基地| 99re免费视频| 国产成人精品无码免费播放| 高圆圆被导演狂躁C到高潮| 日本三级gif动态图出处| 教练在泳池下添我做爰| 三男一女做爰猛烈叫床图片| 亚洲欧美日韩一区成人| 体育院校大猛攻0| mm131杨晨晨极品大尺度| 理论片午午伦夜理片免费版| 69人妻精品丰满熟女区| 高h浪荡文| 久久久xxxx| 国产h视频| 爽?好紧?宝贝别夹大巴动漫视频| 美女穿jk被灌水憋尿视频| 国产欧美日韩一区二区三区在线| 强行糟蹋强行蹂躏视频| 午夜精品久久久久久毛片| 精品九九久久国内精品| 麻麻的屁股夹得我好爽| 99er热精品视频国产免费| 制服 中文 人妻 字幕| 从腿摸到内裤里亲嘴|