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

รีเซ็ตค่า AUTO_INCREMENT ใน MySQL ให้เริ่มต้นที่ 1 อีกครั้ง

การตั้งค่า AUTO_INCREMENT ใหม่ด้วย ALTER TABLE

เมื่อต้องการรีเซ็ตคอลัมน์ AUTO_INCREMENT ให้เริ่มนับใหม่จาก 1 สามารถใช้คำสั่ง ALTER TABLE ได้ดังนี้:

ALTER TABLE yourTableName AUTO_INCREMENT = 0;

หมายเหตุ: การตั้งค่าเป็น 0 จะทำให้ค่าเริ่มต้นกลายเป็น 1 (ค่าเริ่มต้นมาตรฐานของ MySQL)

ตัวอย่างการใช้งาน

สร้างตารางพร้อมตั้งค่า AUTO_INCREMENT เริ่มต้นที่ 109:

mysql> CREATE TABLE DemoTable698 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) AUTO_INCREMENT = 109;
Query OK, 0 rows affected (0.88 sec)

รีเซ็ตค่า AUTO_INCREMENT กลับไปที่ 0:

mysql> ALTER TABLE DemoTable698 AUTO_INCREMENT = 0;
Query OK, 0 rows affected (0.21 sec)

เพิ่มข้อมูลใหม่ (ไม่ระบุค่า ClientId ให้ระบบสร้างอัตโนมัติ):

mysql> INSERT INTO DemoTable698 VALUES ();
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable698 VALUES ();
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable698 VALUES ();
Query OK, 1 row affected (0.12 sec)

ตรวจสอบผลลัพธ์ - ค่า ID จะเริ่มที่ 1 ใหม่:

mysql> SELECT * FROM DemoTable698;
+----------+
| ClientId |
+----------+
| 1        |
| 2        |
| 3        |
+----------+
3 rows in set (0.00 sec)

ข้อควรระวัง

  • คำสั่งนี้ทำงานได้ก็ต่อเมื่อตารางว่างเปล่าหรือไม่มีข้อมูลที่มี ID สูงกว่าค่าที่จะตั้งใหม่
  • หากมีข้อมูลอยู่แล้ว ให้ใช้ TRUNCATE TABLE ก่อน (จะลบข้อมูลทั้งหมด) หรือลบข้อมูลด้วย DELETE แล้วค่อยรีเซ็ต
  • ในบางเวอร์ชัน MySQL อาจต้องใช้ค่า 1 แทน 0 ก็ได้ (ผลลัพธ์เหมือนกัน)