Horje
MySQL AUTO_INCREMENT

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.

What is AUTO_INCREMENT

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:

ALTER TABLE table_name MODIFY column_name datatype AUTO_INCREMENT;

Examples of MySQL AUTO_INCREMENT

Let’s create a table named ‘employees‘ with an AUTO_INCREMENT column.

CREATE TABLE employees (    
id INT AUTO_INCREMENT,
name VARCHAR(50),
position VARCHAR(50),
PRIMARY KEY (id)
);

Inserting Data into the Table

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');
INSERT INTO employees (name, position) VALUES ('Bob', 'Developer');
INSERT INTO employees (name, position) VALUES ('Charlie', 'Designer');

Viewing the Table Data

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 Values

You 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 Tester

By 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.

Deleting Rows and AUTO_INCREMENT

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:

  • Suppose the table initially has the following rows:
    id name position
    1 Alice Manager
    2 Bob Developer
    3 Charlie Designer
  • If you delete the last row:
DELETE FROM employees WHERE id = 3;
  • The table will now look like this:
    id name position
    1 Alice Manager
    2 Bob Developer
  • Inserting a new row will result in the following:
INSERT INTO employees (name, position) VALUES ('Dave', 'Tester');

Output:

id name position
1 Alice Manager
2 Bob Developer
4 Dave Tester

Considerations

  1. Primary Key Requirement: The AUTO_INCREMENT column must be defined as a key (typically the primary key) for the table.
  2. Only One AUTO_INCREMENT Column: Each table can have only one AUTO_INCREMENT column.
  3. Integer Data Type: The AUTO_INCREMENT attribute can be used only with integer types.
  4. Handling Duplicates: Ensure that the AUTO_INCREMENT column is unique and not manually set to a value that might cause duplicates

Conclusion

The 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.




Reffered: https://www.geeksforgeeks.org


Databases

Related
IFNULL VS COALESCE IFNULL VS COALESCE
Handling Document Updates, Deletes, and Upserts Handling Document Updates, Deletes, and Upserts
How to Add Prefix in Auto Increment in MySQL? How to Add Prefix in Auto Increment in MySQL?
How to Store Multiple Dates in a Column in MySQL How to Store Multiple Dates in a Column in MySQL
Introduction to Monitoring using the ELK Stack Introduction to Monitoring using the ELK Stack

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
18