Вот таблица в 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), если производительность очень важна (хотя дисковое пространство не важно)?