проблема с auto_increment () - PullRequest
       10

проблема с auto_increment ()

0 голосов
/ 06 апреля 2011

У меня есть таблица с двумя полями.

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"

как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 06 апреля 2011

Столбец с автоинкрементом будет использоваться для идентификации ваших строк как уникальных, если у вас нет другого кандидата на первичный ключ.Если вы полагаетесь на то, что в вашей последовательности нет пробелов, у вас возникнут проблемы с логикой того, как вы подходите к проблеме, ваши запросы не должны полагаться на что-либо, кроме того, что они уникальны.

Также найдите фрагмент MySQL Поваренная глава , которая говорит то же самое

0 голосов
/ 06 апреля 2011

Вы не можете сделать это с автоинкрементом.Он сохраняет только идентификатор последней вставленной записи и увеличивает его при вставке.Он не отслеживает операции удаления.

В любом случае, почему вы хотите это сделать?

0 голосов
/ 06 апреля 2011

Я не думаю, что вы можете изменить это. Это как auto_increment работает в MySQL.

...