MySQL: #1075 - Неправильное определение таблицы; автоинкремент против другого ключа?

Вот таблица в MySQL 5.3.X+ db:

CREATE TABLE members` (
  `id` int(11)  UNSIGNED NOT NULL AUTO_INCREMENT,
  `memberid` VARCHAR( 30 ) NOT NULL ,
  `Time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  `firstname` VARCHAR( 50 ) NULL ,
  `lastname` VARCHAR( 50 ) NULL ,
  UNIQUE (memberid),
  PRIMARY KEY (id) 
) ENGINE = MYISAM;

Колонка Id никогда не используется в запросах, она просто для визуального удобства (чтобы было видно, как растет таблица). Memberid является фактическим ключом, уникален, и memberid используется в запросах для идентификации любого члена (WHERE memberid='abcde').

Мой вопрос: как сохранить auto_increment, но сделать memberid первичным ключом? Возможно ли это? Когда я пытаюсь создать эту таблицу с PRIMARY KEY (memberid), я получаю ошибку:

1075 - Неправильное определение таблицы; может быть только один столбец auto и он должен быть определен как ключ

Какой лучший выбор (надеюсь, есть способ сохранить столбец id, чтобы производительность была хорошей и запросы идентифицировали любого пользователя по memberid, а не по id), если производительность очень важна (хотя дисковое пространство не важно)?

27
задан OMG Ponies 13 November 2011 в 20:45
поделиться