這裏是在MySQL 5.3.X +數據庫表: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是一個實際的密鑰,是唯一的,並且memberid用於查詢以識別任何成員(WHERE memberid ='abcde')。
我的問題是:如何保持auto_increment,但使memberid作爲主鍵?那可能嗎? 當我嘗試創建該表與PRIMARY KEY(MEMBERID),我得到一個錯誤:
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
什麼是最好的選擇(希望有一種方法來保持的id列,因此表現不俗,查詢通過memberid而不是id來標識任何用戶),如果性能非常重要(儘管磁盤空間不是)?
+1感謝您的評論,今天學到了一些東西:) –