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

ตั้งค่า AUTO_INCREMENT เริ่มต้นใน MySQL ด้วย ALTER TABLE

ใช้คำสั่ง ALTER TABLE 2 ขั้นตอน: 1) ทำให้คอลัมน์เป็น PK + AUTO_INCREMENT 2) ตั้งค่าเริ่มต้น

ขั้นตอนที่ 1: ทำให้เป็น PK และ AUTO_INCREMENT

ALTER TABLE yourTableName
MODIFY yourColumnName INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ADD INDEX(yourColumnName);

ขั้นตอนที่ 2: ตั้งค่า AUTO_INCREMENT เริ่มต้น

ALTER TABLE yourTableName AUTO_INCREMENT = yourStartingValue;

ตัวอย่างสมบูรณ์

สร้างตาราง

mysql> CREATE TABLE setAutoIncrementDemo (
    -> UserId INT,
    -> UserName VARCHAR(20)
    -> );

ขั้นตอนที่ 1

mysql> ALTER TABLE setAutoIncrementDemo
    -> MODIFY UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ADD INDEX(UserId);
Query OK, 0 rows affected (1.51 sec)

ขั้นตอนที่ 2: เริ่มที่ 1000

mysql> ALTER TABLE setAutoIncrementDemo AUTO_INCREMENT = 1000;
Query OK, 0 rows affected (0.34 sec)

ทดสอบ INSERT

mysql> INSERT INTO setAutoIncrementDemo(UserName) VALUES ('John'), ('Carol'), ('Sam');

ผลลัพธ์ (UserId เริ่มที่ 1000)

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1000   | John     |
| 1001   | Carol    |
| 1002   | Sam      |
+--------+----------+

ข้อสังเกต

  • AUTO_INCREMENT ต้องอยู่บนคอลัมน์ที่เป็น PRIMARY KEY หรือ UNIQUE KEY
  • ค่าเริ่มต้นต้องมากกว่าค่าสูงสุดที่มีอยู่ (ถ้ามีข้อมูลแล้ว)
  • MyISAM: สามารถตั้งค่าได้ตลอด | InnoDB: ต้องไม่มีข้อมูลหรือค่าใหม่ > MAX(id)
  • ใช้ SHOW TABLE STATUS LIKE 'table_name' ดูค่า AUTO_INCREMENT ปัจจุบัน

ตั้งค่าตอนสร้างตาราง (CREATE TABLE)

CREATE TABLE demo (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
) AUTO_INCREMENT = 1000;

รีเซ็ต AUTO_INCREMENT (หลังลบข้อมูลมาก)

ALTER TABLE table_name AUTO_INCREMENT = 1; -- เริ่มที่ 1 ใหม่ (ถ้าตารางว่าง)