type poner como columna column colocar change autoincrement auto_increment agregar mysql sql alter-table

columna - como poner autoincrement en mysql workbench



Tabla ALTER: agregar AUTOINCREMENT en MySQL (7)

La sintaxis

ALTER TABLE `table1` CHANGE `itemId` `itemId` INT( 11 ) NOT NULL AUTO_INCREMENT

Pero la tabla necesita una clave definida (ex clave principal en itemId).

itemID una tabla en MySQL con la columna itemID . Después de crear la tabla, ahora quiero cambiar esta columna a AUTOINCREMENT . ¿Cómo se puede hacer esto usando declaraciones ALTER?

Definición de la tabla:

ALLITEMS (itemid int(10) unsigned, itemname varchar(50))

Estoy usando el siguiente código pero está arrojando un error: sintaxis incorrecta .

ALTER TABLE allitems MODIFY itemid INT(10) UNSIGNED AUTOINCREMENT;


Sintaxis básica para agregar una AUTO_INCREMENT PRIMARY KEY a la tabla existente de OP:

ALTER TABLE allitems MODIFY itemid INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY;

O para una nueva tabla, aquí está el ejemplo de sintaxis de los documentos :

CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) );

Trampas y cosas a tener en cuenta:

  • Una columna AUTO_INCREMENT debe tener un índice. (Por lo general, querrás que sea la PRIMARY KEY, pero MySQL no requiere esto).
  • Por lo general, es una buena idea hacer que sus columnas AUTO_INCREMENT UNSIGNED AUTO_INCREMENT UNSIGNED . De los documentos:

    Utilice el atributo UNSIGNED si es posible para permitir un rango mayor.

  • Al usar una cláusula CHANGE o MODIFY para hacer una columna AUTO_INCREMENT (o siempre que use una cláusula CHANGE o MODIFY ) debe tener cuidado de incluir todos los modificadores para la columna, como NOT NULL o UNSIGNED , que aparecen en la definición de la tabla cuando usted llama SHOW CREATE TABLE yourtable . Estos modificadores se perderán de lo contrario.

CREATE TABLE ALLITEMS( itemid INT(10)UNSIGNED, itemname VARCHAR(50) ); ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY; DESC ALLITEMS; INSERT INTO ALLITEMS(itemname) VALUES (''Apple''), (''Orange''), (''Banana''); SELECT * FROM ALLITEMS;

También me confundieron con las palabras clave CHANGE y MODIFY antes:

ALTER TABLE ALLITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY; ALTER TABLE ALLITEMS MODIFY itemid INT(5);

Mientras estamos allí, también tenga en cuenta que AUTO_INCREMENT también puede comenzar con un número predefinido:

ALTER TABLE tbl AUTO_INCREMENT = 100;


ALTER TABLE `ALLITEMS` CHANGE COLUMN `itemid` `itemid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;


ALTER TABLE allitems CHANGE itemid itemid INT(10) AUTO_INCREMENT;


ALTER TABLE t_name modify c_name INT(10) AUTO_INCREMENT PRIMARY KEY;


ALTER TABLE tblcatalog CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT FIRST;