MySQL的ID自增屬性是非常常見的,也是非常實用的。但是有些情況下,我們會發現MySQL的ID并不連續,這是為什么呢?
CREATE TABLE test ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); INSERT INTO test(name) VALUES("Tom"); INSERT INTO test(name) VALUES("Jerry"); DELETE FROM test WHERE id = 2; INSERT INTO test(name) VALUES("Peter"); SELECT * FROM test;
以上是一段MySQL的代碼,我們創建了一個名為test的表格,里面有id和name兩列,id是自增屬性。我們接著插入了三條數據,分別是Tom、Jerry和Peter。然后我們又刪除了id為2的這條記錄,最后又插入了一條Peter的記錄。
當我們查詢這個test表格時,雖然我們只插入了三條記錄,但是MySQL會生成四條ID,分別是1、3、4、因為當我們刪除ID為2的那一條記錄時,ID為3的記錄并沒有被刪除,也就是說我們插入的Peter記錄其實是緊接著ID為3的記錄插入的。
因此,我們很容易發現MySQL的ID并不連續,這并不是一個問題,只是一個MySQL的生命周期。如果您需要在代碼中使用連續的ID,您可以添加一些代碼來實現這個功能。