В моей таблице MySQL я создал столбец идентификаторов, который я надеюсь автоматически увеличить, чтобы он стал первичным ключом.
Я создал свою таблицу:
CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 50 ) NOT NULL ,
`date_modified` DATETIME NOT NULL ,
UNIQUE (
`name`
)
) TYPE = INNODB;
затем вставил мои записи:
INSERT INTO `test` ( `id` , `name` , `date_modified` )
VALUES (
NULL , 'TIM', '2011-11-16 12:36:30'
), (
NULL , 'FRED', '2011-11-16 12:36:30'
);
Я ожидаю, что мои идентификаторы для вышеупомянутых 1 и 2 (соответственно).И пока это правда.Однако, когда я делаю что-то вроде этого:
insert into test (name) values ('FRED')
on duplicate key update date_modified=now();
, затем вставляю новую запись, я ожидаю, что это будет 3, однако теперь мне показывают ID 4;пропуская место для 3.
Обычно это не было бы проблемой, но я использую миллионы записей, которые имеют тысячи обновлений каждый день ... и я действительно не хочу даже думатьоб исчерпании идентификаторов просто потому, что я пропускаю тонну цифр ..
Anyclue, почему это происходит?
Версия MySQL: 5.1.44
Спасибо