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
oMODIFY
para hacer una columnaAUTO_INCREMENT
(o siempre que use una cláusulaCHANGE
oMODIFY
) debe tener cuidado de incluir todos los modificadores para la columna, comoNOT NULL
oUNSIGNED
, que aparecen en la definición de la tabla cuando usted llamaSHOW 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;