Last Updated : 23 Jul, 2025
In MySQL, the AUTO_INCREMENT
attribute is used to generate a unique identifier for new rows in a table. This attribute is often applied to primary key columns to ensure that each row can be uniquely identified. This article will explore the AUTO_INCREMENT
attribute, how to use it, and various considerations to keep in mind.
An attribute that can be added to a column is AUTO_INCREMENT which generates an identification number for every record that is added to a table. Usually associated with the PRIMARY KEY constraint, it helps to achieve that each record possesses a unique value, which is rather important for searching data.
Syntax:
The 'AUTO_INCREMENT' attribute is added to a column definition in a CREATE TABLE or ALTER TABLE statement. Here is the basic syntax:
CREATE TABLE table_name (
column1 datatype AUTO_INCREMENT,
column2 datatype,
...
PRIMARY KEY (column1)
);
For an existing table, you can add AUTO_INCREMENT using:
Examples of MySQL AUTO_INCREMENTALTER TABLE table_name MODIFY column_name datatype AUTO_INCREMENT;
Let's create a table named 'employees' with an AUTO_INCREMENT column.
CREATE TABLE employees (Inserting Data into the Table
id INT AUTO_INCREMENT,
name VARCHAR(50),
position VARCHAR(50),
PRIMARY KEY (id)
);
Now, let's insert some data into the 'employees' table and observe how the AUTO_INCREMENT column behaves.
INSERT INTO employees (name, position) VALUES ('Alice', 'Manager');Viewing the Table Data
INSERT INTO employees (name, position) VALUES ('Bob', 'Developer');
INSERT INTO employees (name, position) VALUES ('Charlie', 'Designer');
To verify the inserted data and see the AUTO_INCREMENT values, execute:
SELECT * FROM employees;Output:
This query will retrieve all records from the employees table. The expected output will look like this:
id name position 1 Alice Manager 2 Bob Developer 3 Charlie Designer Modifying AUTO_INCREMENT ValuesYou can set a specific starting value for the 'AUTO_INCREMENT'
column using the 'ALTER TABLE
'
statement:
ALTER TABLE employee AUTO_INCREMENT = 1000;Inserting Additional Data
Now, let's insert a new row into the employees
table to see the effect of setting the AUTO_INCREMENT
value to 1000:
INSERT INTO employees (name, position) VALUES ('Dave', 'Tester');Viewing the Table Data Again
SELECT * FROM employees;
Output:
id name position 1 Alice Manager 2 Bob Developer 3 Charlie Designer 1000 Dave TesterBy setting the AUTO_INCREMENT
value to 1000, the next inserted row after setting this value receives an id
of 1000, as shown in the table.
When you delete rows from a table, the 'AUTO_INCREMENT
'
value does not automatically reset. For example, if you delete the last row, the next insert will continue with the next incremented value. Here is an example to illustrate this:
DELETE FROM employees WHERE id = 3;
INSERT INTO employees (name, position) VALUES ('Dave', 'Tester');
Output:
id name position 1 Alice Manager 2 Bob Developer 4 Dave Tester ConsiderationsAUTO_INCREMENT
column must be defined as a key (typically the primary key) for the table.AUTO_INCREMENT
column.AUTO_INCREMENT
attribute can be used only with integer types.AUTO_INCREMENT
column is unique and not manually set to a value that might cause duplicatesThe AUTO_INCREMENT attribute in MySQL is an important feature for the generation of the new table record’s automatically running number ID’s. It makes it easy to ensure that each record within a given table has a primary key, which is very crucial for dictating the integrity and accessibility of the records within the database. With AUTO_INCREMENT being used properly, you will have the sense of improving your ability in database management.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4