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-テーブル定義が正しくありません。自動列は1つしか存在できず、キーとして定義する必要があります
パフォーマンスが非常に重要である場合(ディスク容量は重要ではありませんが)、最良の選択は何ですか(うまくいけば、パフォーマンスが良好で、クエリがIDではなくmemberidでユーザーを識別するようにid列を維持する方法があります)?