Search code examples
mysqlsqlalter-table

ALTER table - adding AUTOINCREMENT in MySQL


I created a table in MySQL with on column itemID.

After creating the table, now I want to change this column to AUTOINCREMENT.

How can this be done using ALTER statements?

Table definition:

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

I am using the following code but it is throwing a syntax error

Error: syntax incorrect.

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

Solution

  • 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;
    

    I was confused with CHANGE and MODIFY keywords before too:

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

    While we are there, also note that AUTO_INCREMENT can also start with a predefined number:

    ALTER TABLE tbl AUTO_INCREMENT = 100;