Ecco una tabella in MySQL 5.3.x + db:MySQL: # 1075 - Definizione della tabella errata; autoincrement vs un'altra chiave?
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 colonna viene mai usato nelle query, è solo per comodità visiva (così è facile vedere come la tabella cresce). Memberid è una chiave effettiva, è univoco e memberid viene utilizzato nelle query per identificare qualsiasi membro (WHERE memberid = 'abcde').
La mia domanda è: come mantenere auto_increment, ma rendere memberid come chiave primaria? È possibile? Quando cerco di creare questa tabella con PRIMARY KEY (memberId), ottengo un errore:
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Qual è la scelta migliore (Si spera, non v'è un modo per tenere colonna id quindi le prestazioni è buono e le query identificano qualsiasi utente da memberid, non da id), se la prestazione è molto importante (sebbene lo spazio su disco non lo sia)?
+1 e grazie per il commento, ho imparato qualcosa oggi :) –