簡體   English   中英

auto_increment()問題

[英]problem with auto_increment()

我有一個包含兩個字段的表。

table test
{
fname char(20),
id int not null auto_increment,
primary key(id)
}

現在我將3條記錄添加到表中,如下所示:

insert into test(fname) values
('a'),('b'),('c');

桌子看起來像

fname  id
a       1
b       2
c       3

現在我從表中刪除b,所以我有:

fname id
a      1
b      3

現在我再次將新記錄插入表中

insert into test(fname) values('d);

並獲得:

fname id 
a      1
b      3
d      4

但我希望上一條記錄的ID為“ 2”

我怎樣才能做到這一點?

如果您沒有其他主鍵候選者,則自動遞增列將用於將您的行標識為唯一。 如果您依賴於它們在序列中沒有空缺,那么您將無法解決問題的邏輯,因此查詢不應該依賴於唯一性。

還可以找到一段MySQL Cookbook ,內容與上面相同

我認為您無法更改。 這是auto_increment在mysql中的工作原理。

您不能通過自動增量來做到這一點。 它僅保留最后插入的記錄的ID,並在您插入時增加ID。 它不跟蹤刪除操作。

無論如何,為什么要這么做?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM