El escenario involucra una tabla MySQL donde la columna de identificación sirve como un campo de incremento automático para visualización conveniencia, mientras que la columna memberid actúa como la clave única real. Sin embargo, el intento de definir la tabla con PRIMARY KEY (memberid) da como resultado un error (1075) que indica que solo puede haber una columna automática y que debe ser una clave.
Para resolver el problema, es posible tener una columna de incremento automático que no sea la CLAVE PRIMARIA, siempre que se defina un índice (clave) en ella. Aquí está la definición de la tabla modificada:
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,
PRIMARY KEY (memberid),
KEY (id) # or: UNIQUE KEY (id)
) ENGINE = MYISAM;
Al agregar un índice CLAVE o CLAVE ÚNICA en la columna de identificación, la funcionalidad de incremento automático se mantiene mientras la columna de identificación de miembro se convierte en la clave principal, lo que permite consultas eficientes basadas en el valor de identificación de miembro.
La mejor elección depende de la importancia relativa del rendimiento y el espacio en disco. Si el rendimiento es primordial, mantener la columna de identificación de incremento automático y usar un índice en memberid ofrece un equilibrio:
Sin embargo, si el espacio en disco es una preocupación importante, considere eliminar la columna id por completo y confiar en la columna memberid como clave principal y automática. -campo incremental. Este enfoque sacrifica algo de rendimiento para mejorar la utilización del espacio. En última instancia, la elección entre rendimiento y espacio depende de los requisitos específicos de la aplicación.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3