Database 裡在開新 table 時,常會使用俱有自動增值屬性 (auto increment) 的欄位來當 primary key,而常見的命名也不外乎是 ID 或是 post_id 之類的。每當插入一筆新資料,ID 就會自動加一,是很方便的功能。不過在刪除資料時,ID 值並不會重設,留下很多空的序列,像是 1, 2, 4, 7, 12 這樣,尤其是系統開發階段更是如此。
除了將 table 刪除,重匯資料以外,MySQL 官網上也有提到如何重設 auto-increment 的指標值。只要輸入下列 query 就能指定指標值:
ALTER TABLE tbl AUTO_INCREMENT = 1;
當然數字可以依需求更改。
若是要在插入資料時就指定數值,要輸入下列 query:
SET insert_id = 40; INSERT INTO tbl VALUES ('blah', '...');
馬上接著的 insert into 就會是指定的 ID 值了,這個語法是一次性的,並不會影響其他插入的資料。
或是先入插入資料,再用 UPDATE 也可以更改 ID 值。
INSERT INTO tbl VALUES ('blah', '...'); UPDATE tbl SET id = 40;
若是需要知道最後一筆新資料的 ID 值,可以用以下 query:
SELECT LAST_INSERT_ID();
Leave a Reply