Aquí es una tabla en MySQL 5.3.x + db:MySQL: # 1075 - Definición de tabla incorrecta; autoincrement vs otra clave?
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 columna nunca se utiliza en las consultas, es sólo por comodidad visual (por lo que es fácil ver cómo crece la tabla). Memberid es una clave real, es único y memberid se utiliza en consultas para identificar a cualquier miembro (WHERE memberid = 'abcde').
Mi pregunta es: ¿cómo mantener auto_increment, pero hacer memberid como clave principal? ¿Es eso posible? Cuando intento para crear esta mesa con PRIMARY KEY (memberId), me sale un error:
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
¿Cuál es la mejor opción (Con suerte, hay una manera de mantener la columna ID lo que el rendimiento es bueno y las consultas identifican a cualquier usuario por memberid, no por id), si el rendimiento es muy importante (aunque el espacio en disco no lo es)?
+1 y gracias por el comentario, aprendí algo hoy :) –