Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราจะเปลี่ยนหมายเลขเริ่มต้นของ MySQL AUTO_INCREMENT ได้อย่างไร


ค่า MySQL AUTO_INCREMENT เริ่มต้นจาก 1 แต่เราสามารถเปลี่ยนได้ด้วยสองวิธีดังต่อไปนี้ -

ด้วยความช่วยเหลือของ ALTER TABLE แบบสอบถาม

เราสามารถใช้แบบสอบถาม ALTER TABLE เพื่อเปลี่ยนค่าการจ้องมองของ AUTO_INCREMENT ได้ดังนี้ -

ALTER TABLE table_name AUTO_INCREMENT = value;

ตัวอย่าง

สมมติว่าเราได้สร้างตารางที่มีคอลัมน์ 'id' เป็น AUTO_INCREMENT ตอนนี้ถ้าเราจะใส่ค่าลงไป หมายเลขลำดับจะเริ่มจาก 1 ดังที่คุณเห็นในข้อความค้นหาต่อไปนี้ -

mysql> Create Table EMP(id int NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10));
Query OK, 0 rows affected (0.07 sec)

mysql> Insert Into EMP(Name) Values('Aryan');
Query OK, 1 row affected (0.02 sec)

mysql> Insert Into EMP(Name) Values('Yash');
Query OK, 1 row affected (0.04 sec)

mysql> Select * from EMP;
+----+-------+
| id | NAME  |
+----+-------+
| 1  | Aryan |
| 2  | Yash  |
+----+-------+
2 rows in set (0.00 sec)

ตอนนี้ หากเราต้องการเปลี่ยนหมายเลขลำดับหลังจากนั้น เราจำเป็นต้องใช้แบบสอบถาม ALTER TABLE เพื่อเปลี่ยนค่าของ AUTO_INCREMENT ดังนี้ -

mysql> Alter table emp auto_increment = 10;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Insert Into EMP(Name) Values('Daksh');
Query OK, 1 row affected (0.03 sec)

mysql> Insert Into EMP(Name) Values('Shayra');
Query OK, 1 row affected (0.06 sec)

mysql> Select * from EMP;
+----+--------+
| id | NAME   |
+----+--------+
| 1  | Aryan  |
| 2  | Yash   |
| 10 | Daksh  |
| 11 | Shayra |
+----+--------+
4 rows in set (0.00 sec)

ข้อความค้นหาด้านบนได้เปลี่ยนค่าของ AUTO_INCREMENT เป็น 10 ดังนั้นเมื่อใส่ค่าใหม่เข้าไป หลังจากนั้นเราจะได้หมายเลขลำดับตั้งแต่ 10 เป็นต้นไป

ด้วยความช่วยเหลือของ CREATE TABLE แบบสอบถาม

เรายังสามารถเปลี่ยนค่า AUTO_INCREMENT ขณะสร้างตารางได้อีกด้วย สามารถทำได้โดยระบุค่าของ AUTO_INCREMENT ด้วยคำสั่ง CREATE TABLE ดังนี้ -

CREATE TABLE (Column1 INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Column2 data type) AUTO_INCREMENT = value;

ตัวอย่าง

mysql> Create Table EMP1(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10)) AUTO_INCREMENT = 100;
Query OK, 0 rows affected (0.11 sec)

แบบสอบถามด้านบนระบุค่าของ AUTO_INCREMENT ถึง 100 ในการสร้างตาราง ตอนนี้ถ้าเราจะใส่ค่าในนั้น หมายเลขลำดับก็จะเริ่มต้นจาก 100 แทนที่จะเป็นค่าดีฟอลต์ 1 ดังนี้ -

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

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

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