Home > Database > Mysql Tutorial > What does MySQL return when we change an AUTO_INCRMENT value that is less than the current sequence number?

What does MySQL return when we change an AUTO_INCRMENT value that is less than the current sequence number?

PHPz
Release: 2023-09-03 20:57:03
forward
747 people have browsed it

当我们更改小于当前序列号的 AUTO_INCRMENT 值时,MySQL 返回什么?

When we use AUTO_INCREMENT on a MySQL column, the sequence number always increases in ascending order, starting from the default value of 1 or the value we specify.

This is why MySQL does not allow changing the AUTO_INCREMENT value to a value smaller than the current sequence number. It can be understood through the following example:

Example

In this example, suppose we have a table named 'emp1' and we specify the AUTO_INCREMENT value as 100 while creating the table. So, after inserting the values ​​in the table, the sequence will start from 100 as shown in the output of the query below:

mysql> Select * from emp1;
+-----+---------+
| id | NAME     |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
+-----+---------+
2 rows in set (0.00 sec)
Copy after login

Now, when we try to change the AUTO_INCRMENT value to 90 with the help of ALTER TABLE query, MySQL does not Errors and warnings are returned because the query works fine, but when we insert a new value into the table, MySQL compares the specified AUTO_INCRMENT value with the current sequence number. Since the specified AUTO_INCRMENT value (90) is less than the current sequence number (101), MySQL starts accumulating new values ​​from 102, which can be observed from the following query -

mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 90;
Query OK, 2 rows affected (0.31 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Insert into emp1(name) values('Aryan');
Query OK, 1 row affected (0.08 sec)

mysql> Select * from emp1;
+-----+---------+
| id  | NAME    |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
| 102 | Aryan   |
+-----+---------+
3 rows in set (0.00 sec)
Copy after login

On the contrary, if we try to change the AUTO_INCRMENT to If the value is higher than the current sequence number, MySQL will accumulate new values ​​starting from the specified value.

To display 'emp1' more clearly in the table we change the AUTO_INCRMENT value to 108, which is higher than the current sequence number, so MySQL starts accumulating newly inserted values ​​from the specified AUTO_INCRMENT value (i.e. starting from 108) .

mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 108;
Query OK, 3 rows affected (0.30 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> Insert into emp1(name) values('Daksh');
Query OK, 1 row affected (0.04 sec)

mysql> Insert into emp1(name) values('Yashraj');
Query OK, 1 row affected (0.06 sec)

mysql> Select * from emp1;
+-----+---------+
| id  | NAME    |
+-----+---------+
| 100 | Sohan   |
| 101 | Harshit |
| 102 | Aryan   |
| 108 | Daksh   |
| 109 | Yashraj |
+-----+---------+
5 rows in set (0.00 sec)
Copy after login

The above is the detailed content of What does MySQL return when we change an AUTO_INCRMENT value that is less than the current sequence number?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template