valida una parte nonclustered multiple longitud introduzca index error erronea create columns clave mysql sql

mysql - una - ¿Qué hay de malo con mi SQL aquí?#1089-Clave de prefijo incorrecta



introduzca una longitud valida phpmyadmin (12)

CREATE TABLE `table`.`users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `dir` VARCHAR(100) NOT NULL, PRIMARY KEY (`id`(11)) ) ENGINE = MyISAM;

Estoy obteniendo el #1089 - Incorrect prefix key Error de #1089 - Incorrect prefix key y no puedo entender qué estoy haciendo mal. ¡Ayuda por favor!


Cuando da la identificación como clave principal, aparece una ventana emergente que le pregunta cuántos tamaños de esta clave principal. Así que simplemente lo deja en blanco porque, por defecto, el valor int está establecido en 11. Haga clic en Aceptar y luego en los elementos emergentes sin ingresar ningún número. en este tipo de error nunca te enfrentarás en el futuro. Gracias 😊


El problema es el mismo para mí en phpMyAdmin. Acabo de crear una tabla sin ninguna constante. Más tarde modifiqué la ID a una clave principal. Luego cambié la ID a Auto-inc. Eso resolvió el problema.

ALTER TABLE `users` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT;


En mi caso, enfrenté el problema al crear la tabla desde phpmyadmin. Para la columna de identificación, elijo la opción principal del menú desplegable de índice y llené el tamaño 10.

Si está utilizando phpmyadmin, para resolver este problema, vuelva a cambiar la opción desplegable de índice, después de volver a seleccionar la opción principal, le preguntará el tamaño, déjelo en blanco y listo.


En su definición de PRIMARY KEY que ha utilizado (id(11)) , que define una clave de prefijo, es decir, los primeros 11 caracteres solo deben usarse para crear un índice. Las claves de prefijo solo son válidas para los tipos CHAR , VARCHAR , BINARY y VARBINARY y su campo de id es un int , de ahí el error.

Utilice PRIMARY KEY (id) lugar y debería estar bien.

Referencia de MySQL here y lea el párrafo 4.


Esta

CLAVE PRIMARIA ( id (11))

es generado automáticamente por phpmyadmin, cambie a

CLAVE PRIMARIA ( id )

.


Esto funciona para mi:

CREATE TABLE `users`( `user_id` INT(10) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE = MyISAM;


Hay una manera simple de hacerlo. Puede que esta no sea la respuesta experta y puede que no funcione para todos, pero lo hizo para mí.

Desmarca todas las casillas de verificación primarias y únicas, pero crea una tabla simple y simple.

Cuando phpmyadmin (u otro) le muestra la estructura de la tabla, haga que la columna sea primaria con el botón dado.

Luego haga clic en cambiar y edite la configuración de esa u otras columnas como ''único'', etc.


Si está utilizando una GUI y todavía tiene el mismo problema. Simplemente deje el valor de tamaño vacío, la clave principal establece el valor predeterminado en 11, debería estar bien con esto. Trabajó con Bitnami phpmyadmin.


También tuve este mismo problema.
La solución funciona para mí:

CREATE TABLE IF NOT EXISTS `users` ( `sr_no` int(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `dir` VARCHAR(100) NOT NULL, PRIMARY KEY (`sr_no`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Pego este código en SQL y lo ejecuto, funciona bien.


de acuerdo con la última versión de MySQL (phpMyAdmin), agregue un ÍNDICE correcto mientras selecciona la clave principal. por ejemplo: id [int] INDEX 0, si id es su clave principal y está en el primer índice. O,

Para tu problema prueba este

CREATE TABLE `table`.`users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `dir` VARCHAR(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;


Aquí la solución completa paso a paso.

  • En primer lugar, debe hacer la tabla insertando todos los datos. ID debería AI marcado.
  • luego presione ir y aparecerá el error # 1089 emergente

aqui esta la solucion

  • hay un botón cerca de ir llamado SQL de vista previa
  • haga clic en ese botón y copie el código sql
  • luego haga clic en la pestaña SQL en la parte superior de la ventana
  • Borre el texto archivado y pegue el código copiado allí.
  • verá (id (11)) esto en la parte inferior del código
  • reemplace (id (11)) en (id)
  • y haga clic en ir

boom ahora estarás bien


CREATE TABLE `table`.`users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `dir` VARCHAR(100) NOT NULL, PRIMARY KEY (`id`(11)) ) ENGINE = MyISAM;

Cambiar a

CREATE TABLE `table`.`users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `dir` VARCHAR(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;