はここでのMySQL 5.3.X + DB内のテーブルです:MySQL:#1075 - 不正なテーブル定義。オートインクリメントと別のキー
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;
同上列がクエリで使用されることはありません、それだけで視覚的利便性のためである(それは、テーブルの成長方法を確認するのは簡単です)。 Memberidは実際のキーであり、一意であり、任意のメンバー(WHERE memberid = 'abcde')を識別するためのクエリではというメンバーIDが使用されます。
私の質問は:どのようにauto_incrementを維持するが、主キーとしてメンバーIDを作るか?それは可能ですか? 私はPRIMARY KEY(MEMBERID)でこのテーブルを作成しようとすると、私はエラーを取得:
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
最良の選択は、(うまくいけば、パフォーマンスが良いので、id列を維持する方法がありますされて何とクエリはパフォーマンスが非常に重要であれば(ディスク容量はありませんが)、idではなくmemberidで任意のユーザを識別しますか?
+1とコメントのおかげで、今日何かを学んだ:) –