Можно ли иметь первичный ключ и ключ автоинкремента, связанные с двумя полями соответственно? - PullRequest
0 голосов
/ 02 апреля 2010

Возможно ли иметь первичный ключ и ключ автоинкремента, связанные с двумя полями соответственно?

Как мудрый, в таблице есть 3 поля, скажем, ID, имя и возраст .. Тогда возможно ли, что "ID is autoincrment key and name is primary key"?

Ответы [ 4 ]

1 голос
/ 02 апреля 2010

Согласно документации MySQL :

В таблице может быть только один столбец AUTO_INCREMENT, он должен быть проиндексирован и не может иметь значение DEFAULT.

Так что, пока вы удовлетворяете этим условиям, нет никаких упоминаний о том, что он также должен быть первичным ключом. Таким образом, вы должны иметь первичный ключ и отдельный столбец AUTO_INCREMENT (хотя я не уверен, зачем вам это нужно).

0 голосов
/ 02 апреля 2010

Вы должны использовать ключ автоинкремента в качестве PK и поставить уникальный индекс в поле имени.

0 голосов
/ 02 апреля 2010

Также согласно документации MySQL:

Для таблиц MyISAM вы можете указать дополнительный столбец AUTO_INCREMENT в ключе из нескольких столбцов. См. Раздел 3.6.9, « Использование AUTO_INCREMENT ».

Так что, если вы используете MyISAM, вы можете сделать что-то близкое к тому, что вы просили (если я правильно интерпретирую ваш вопрос): вы можете использовать составной PRIMARY KEY, и один из них может иметь тип INT и используйте свойство AUTO_INCREMENT.

Лучше всего, прочитайте документацию и примеры.

0 голосов
/ 02 апреля 2010

В таблице может быть только один первичный индекс.
если ваше name поле действительно имеет первичное назначение индекса, вам не нужно поле с автоинкрементом Но я действительно сомневаюсь в этом. Какова реальная name цель поля?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...