Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Некорректная работа AUTO_INCREMENT (Максим) 10/02/2008 - 17:00:20
      Re: Некорректная работа AUTO_INCREMENT (ursus) 11/02/2008 - 14:13:08
      Re: Некорректная работа AUTO_INCREMENT (Максим) 11/02/2008 - 18:12:26
      Re: Некорректная работа AUTO_INCREMENT (ursus) 11/02/2008 - 18:46:34
      Re: Некорректная работа AUTO_INCREMENT (Шурик) 13/11/2009 - 14:10:59

> Original message text:
> From: Максим - 10/02/2008 - 17:00:20
> Subject:Некорректная работа AUTO_INCREMENT
> -----------------
> Всем привет!
>
> Работая с MySQL 5 наткнулся на непонятное поведение базы при работе с auto_increment полями.
>
> Допустим, имеем следующую таблицу:
> CREATE TABLE `test` (
> `id` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
>
> Теперь вставим записи с id 0 и 1.
> +----+
> | id |
> +----+
> | 0 |
> | 1 |
> +----+
>
> Сделаем поле id auto_increment
> ALTER TABLE `test` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
>
> Получаем ошибку #1062 - Duplicate entry '1' for key 1, другими словами, оно только что решило внести изменения в первичн ключ.
>
> Однако, если изначально создать таблицу с опцией auto_increment для id, и попытаться вставить запись с id=0, 0 изменится на 1.
>
> Мне такое поведение базы совершенно непонятно, я столкнулся с проблемой при экспорте-импорте базы, в которой есть таблицы с auto_increment полями, содержащими 0.
>
> Как такое победить?
>
>


From: ursus - 11/02/2008 - 14:13:08
Subject:Некорректная работа AUTO_INCREMENT
-----------------
кхым, а ты не заметил что автоинкриментное поле при добавлении записи становится 0+1. т.е. первая запись всегда первая. имхо в первом байте (т.е. в нулевом) идёт идентификатор ключа. а потом адреса записей.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36443



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |