MYSQL自增的問題

2021-09-02 13:36:50 字數 552 閱讀 9163

一張表裡id是自增主鍵,當insert17條記錄後,刪除了第15、16、17條記錄,在重啟mysql,再插入一條記錄,這條記錄的id是多少?

如果表的型別是myisam,新插入記錄的id是18

原因:myisam表會把自增主鍵的最大id記錄到資料檔案裡,重啟mysql後,自增主鍵的最大id不會丟失。

如果是innodb,新插入記錄的id是15

原因:innodb表指示把自增主鍵的最大id記錄到記憶體中,重啟mysql後,會導致最大id丟失。

以innodb型別的表做測試。

初始資料

刪除第4、5條資料後,重啟mysql,在插入新資料

無論是myisam還是innodb,刪除資料後,不重啟mysql的情況下,新插入的記錄最大id是相同的。

php中mysql自增 MySQL的自增欄位

1.關鍵字 auto increment 2.自增用法 例 create table animals id mediumint not null auto increment,name char 30 not nu 1.關鍵字 auto increment 2.自增用法 例 create table...

mysql 實現id自增序列 mysql自增id列

如果希望在每次插入新記錄時,自動地建立主鍵欄位的值。可以在表中建立乙個 auto increment 字段。mysql 使用 auto increment 關鍵字來執行 auto increment 任務。預設地auto increment 的開始值是 1,每條新記錄遞增 1。主鍵又稱主關鍵字,主關...

mysql 主鍵自增語句 MySQL 自增主鍵

以下僅考慮 innodb 儲存引擎。自增主鍵有兩個性質需要考慮 單調性每次插入一條資料,其 id 都是比上一條插入的資料的 id 大,就算上一條資料被刪除。連續性插入成功時,其資料的 id 和前一次插入成功時資料的 id 相鄰。自增主鍵的單調性 為何會有單調性的問題?這主要跟自增主鍵最大值的獲取方式...