[英]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.