mysql добавить автоинкремент и дополнительный ключ - PullRequest
3 голосов
/ 20 мая 2010

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

В таблице уже есть один ключ, и этот будет дополнением. Я получаю следующую ошибку:

error : Multiple primary key defined

Мой код:

alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

У меня также есть попытка обернуть имя ключа, т.е.

alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY (id) KEY FIRST;

Но все равно не повезло.

Как это можно сделать?

Ответы [ 2 ]

3 голосов
/ 20 мая 2010

Натан в значительной степени ответил на вопрос.

Вы можете найти имена существующих индексов, используя команду SHOW INDEX FROM mydb.mytable SQL.

Вы должны сначала удалить существующий индекс, используя DROP_INDEX existing_index ON mydb.mytable.

Затем вы изменяете таблицу и добавляете первичный индекс вместе с вашим кодом.

Наконец, вы создаете другой индекс как уникальный индекс, используя CREATE UNIQUE INDEX unique_index ON mydb.mytable (column).

2 голосов
/ 20 мая 2010

MySQL не поддерживает столбцы AUTO_INCREMENT, которые не являются первичными ключами. Один из вариантов - сделать столбец AUTO_INCREMENT первичным ключом и просто установить уникальное ограничение для другого «ключа».

...