mysql. auto_increment через information_schema отдает два значения

barry

Новичок
При запросе
PHP:
"SELECT `AUTO_INCREMENT` inc FROM `information_schema`.`TABLES` WHERE (`TABLE_NAME`='zaza')"
система отдает два значения.
Ранее, до апдейта таблицы(удалил все записи, импортировал новые), на запрос выше было одно значение. Теперь же первое значение замерло на момент апдейта, а второе - актуальное.
Вопрос: можно ли уничтожить первое?
PS. В принципе я поставил доп. условие, чтобы забирать второе значение, но хотелось бы знать.
 

Фанат

oncle terrible
Команда форума
значение автоинкремента надо получать после вставки, через select insert_id
 

Фанат

oncle terrible
Команда форума
таких ситуаций не бывает.
никогда не бывает нужен абстрактный автоинкремент, в отрыве от конкретной записи.
 

barry

Новичок
таких ситуаций не бывает.
никогда не бывает нужен абстрактный автоинкремент, в отрыве от конкретной записи.
Вот вам ситуация: ведется неразрывная нумерация с помощью автоинкремента, возникают ситуации когда нужно создать сдвиг(дыру в нумерации), в данном случае автоинкремент необходим для наглядности веб-интерфейса и удобства пользователю для осуществления данного сдвига.
 

Фанат

oncle terrible
Команда форума
ведется неразрывная нумерация с помощью автоинкремента,
вот сразу и косяк:
автоинкремент никогда не должен использоваться для нумерации чего бы то ни было
ни к интерфейсам, ни к пользователям этот сугубо внутренний механизм БД не должен иметь ни малейшего отношения.
 

barry

Новичок
Фанат
Если несложно, в чем может выразиться опасность такого использования, либо где можно про это прочесть?
И все же интересно, можно ли удалить первое значение=)
 

Фанат

oncle terrible
Команда форума
начнем с того, что нумерация по определению не будет неразрывной.
уникальный идентификатор нельзя рассматривать как последовательность. это атомарная сущность, привязанная к строке таблицы, и никакого положения относительно других строк не имеющая.
 

Sergey_Al

Новичок
Ну если очень хочется можно делать так:

PHP:
insert into table(id) select max(id)+10 from table
 
Сверху