เมื่อใช้ AUTO_INCREMENT บนคอลัมน์ MySQL ลำดับจะเพิ่มขึ้นเรื่อยๆ เริ่มจากค่าเริ่มต้น 1 หรือค่าที่ระบุ ไม่สามารถเปลี่ยนค่า AUTO_INCREMENT ให้ต่ำกว่าลำดับปัจจุบันได้ สาธิตด้วยตัวอย่าง:
ตัวอย่าง
มีตาราง emp1 ระบุ AUTO_INCREMENT = 100 ตอนสร้างตาราง หลัง INSERT ลำดับเริ่มจาก 100:
mysql> SELECT * FROM emp1; +-----+---------+ | id | NAME | +-----+---------+ | 100 | Sohan | | 101 | Harshit | +-----+---------+ 2 rows in set (0.00 sec)
พยายามเปลี่ยน AUTO_INCREMENT = 90:
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)
MySQL ไม่ผิดพลาด แต่เมื่อ INSERT ใหม่ จะเปรียบเทียบค่า AUTO_INCREMENT ที่ระบุ (90) กับลำดับปัจจุบัน (101) เนื่องจาก 90 < 101 จึงเริ่มสร้างลำดับจาก 102 ต่อไป
ในทางตรงข้าม หากระบุค่า AUTO_INCREMENT สูงกว่าลำดับปัจจุบัน MySQL จะเริ่มสร้างจากค่าที่ระบุ เช่น เปลี่ยนเป็น 108:
mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 108;
Query OK, 3 rows affected (0.30 sec)
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)