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_INCREMENTdebe 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_INCREMENTUNSIGNEDAUTO_INCREMENTUNSIGNED. De los documentos:Utilice el atributo UNSIGNED si es posible para permitir un rango mayor.
- Al usar una cláusula
CHANGEoMODIFYpara hacer una columnaAUTO_INCREMENT(o siempre que use una cláusulaCHANGEoMODIFY) debe tener cuidado de incluir todos los modificadores para la columna, comoNOT NULLoUNSIGNED, 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;