Вот таблица в 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 - Неверное определение таблицы;может быть только один автоматический столбец, и он должен быть определен как ключ
Что является лучшим выбором (Надеюсь, существует способ сохранить столбец идентификатора, чтобы производительность была хорошей, и запросы идентифицировали любого пользователя поmemberid, а не по id), если производительность очень важна (хотя места на диске нет)?