Автоинкремент и существующая таблица

Обсуждение возникших проблем, предложений и ошибок dbForge для MySQL
Закрыто
SergeyW
Сообщения: 276
Зарегистрирован: Пн 03 фев 2014 11:54

Автоинкремент и существующая таблица

Сообщение SergeyW » Пт 04 май 2018 06:26

Невозможно создать поле Автоинкремент на уже существующей таблице с данными.

Alexander

Re: Автоинкремент и существующая таблица

Сообщение Alexander » Пт 04 май 2018 09:47

Мы исследуем данную проблему и сообщим Вам о результате.

Alexander

Re: Автоинкремент и существующая таблица

Сообщение Alexander » Пт 11 май 2018 15:57

Не могли бы Вы прислать нам скриншот ошибки, а также CREATE выражение данной таблицы?

Вы можете прислать ответ напрямую в нашу службу поддержки на supportATdevartDOTcom и alexaATdevartDOTcom

SergeyW
Сообщения: 276
Зарегистрирован: Пн 03 фев 2014 11:54

Re: Автоинкремент и существующая таблица

Сообщение SergeyW » Пт 11 май 2018 18:32

1. Создаем таблицу.

Код: Выделить всё

CREATE TABLE test.table1 ( Name varchar(50) DEFAULT NULL)ENGINE = INNODB;
2. Добавляем в нее данные. Любые, важно чтобы было 2 или более строки.

Код: Выделить всё

INSERT INTO test.table1 VALUE('1'),('2');
3. Добавляем первый ключевой столбец ID. Скрипт, который создает программа:

Код: Выделить всё

-- Создать столбец `id` для таблицы `table1`
ALTER TABLE table1 ADD COLUMN id INT(11) NOT NULL;
-- Изменение порядка колонок в таблице `table1`
ALTER TABLE table1 MODIFY id INT(11) NOT NULL FIRST;
-- Создать индекс `PRIMARY` для объекта типа таблица `table1`
ALTER TABLE table1 ADD PRIMARY KEY (id);
-- Изменить столбец `id` для таблицы `table1`
ALTER TABLE table1  MODIFY id INT(11) NOT NULL AUTO_INCREMENT;

При выполнении строки

Код: Выделить всё

ALTER TABLE table1 ADD PRIMARY KEY (id);
получаем ошибку Duplicate entry '0' for key 'PRIMARY'. И это естественно, так как первой командой мы создаем поле с "NOT NULL", которое будет заполнено "0". Какое может быть PRIMARY на одинаковое содержимое!?

Если вместо 4 строк использовать одну

Код: Выделить всё

ALTER TABLE `table1` ADD COLUMN `Id` INT NOT NULL AUTO_INCREMENT FIRST,	ADD PRIMARY KEY (`Id`);
, то ошибки нет. ;)

Alexander

Re: Автоинкремент и существующая таблица

Сообщение Alexander » Вт 15 май 2018 12:13

Спасибо за ответ.

Мы воспроизвели данную проблему и исправим её в следующей версии продукта.

SergeyW
Сообщения: 276
Зарегистрирован: Пн 03 фев 2014 11:54

Re: Автоинкремент и существующая таблица

Сообщение SergeyW » Вт 15 май 2018 15:26

Спасибо!

Закрыто