Top.Mail.Ru
Ответы

Как в MySQL включить для поля ID таблицы Table опцию autoincrement? Какой запрос?

Дополнен

>>> ALTER TABLE Table MODIFY ID <type> NOT NULL AUTO_INCREMENT;

ALTER TABLE eng_custom_pages MODIFY PAGE_ID mediumint(8) NOT NULL AUTO_INCREMENT
Выдает #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Дополнен

в твоём случае:
alter table Table change ID ID INT auto_increment; -- где первое ID - старое имя твоего поля, второе ID - новое имя, т. е. в этом запросе мы не меняем имя, а только добавляем опцию auto_increment как ты и хотел.

Результат - все та же ошибка...

Дополнен

Таблица создавалась таким запросом
create table eng_custom_pages select * from root_custom_pages;

вот скрин структуры, может пригодится

Дополнен

У меня есть PhpMyAdmin, там автоинкремент для поля не включается, выдает ошибку 1075. Может сделать так: создать новое поле с необходимыми атрибутами и копировать в него содержимое данного поля? Ну а потом старое удалить, новое переименовать.

Я когда-то игрался с этим автоинкрементом, на каком-то форуме нашел рецепт, но, дурак, не сохранил. Там, по-моему, таблица конвертировалась в другой тип, и только потом включался автоинкремент, точно не помню.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Ученик
7лет

Что-то я видел подобную проблему, её решил Deryvier, там всё просто: Переходишь на главную страницу Phpmyadmin, меняешь тему внешнего вида на Original вместо Pmahomme. После этого ставь AUTO_INCREMENT

Аватар пользователя
Мыслитель
14лет

Елки, а MySQL Administrator или, на край, PHPMyAdmin установить никак? Там все оч просто делается.. . Без запросов.. . Не будешь же ты сложную БД чисто запросами писать, правда? Ставь PMA

Аватар пользователя
Мыслитель
14лет

а приведи CREATE TABLE для своей таблицы с ключами и прочим

Аватар пользователя
Мыслитель
14лет

в твоём случае:
alter table Table change ID ID INT auto_increment; -- где первое ID - старое имя твоего поля, второе ID - новое имя, т. е. в этом запросе мы не меняем имя, а только добавляем опцию auto_increment как ты и хотел.
===
ну а читать мы не умеем и английский не знаем? должно быть только одно автоинкрементное поле и при этом оно должно быть ключевое!

Аватар пользователя
Мыслитель
14лет

ALTER TABLE Table MODIFY ID <type> NOT NULL AUTO_INCREMENT;