แอตทริบิวต์ AUTO_INCREMENT ใช้เพื่อสร้างข้อมูลระบุเฉพาะสำหรับแถวใหม่ หากคอลัมน์ถูกประกาศเป็น 'NOT NULL' เป็นไปได้ที่จะกำหนด NULL ให้กับคอลัมน์นั้นเพื่อสร้างลำดับของตัวเลข
เมื่อค่าใดๆ ถูกแทรกลงในคอลัมน์ AUTO_INCREMENT คอลัมน์จะถูกตั้งค่าเป็นค่านั้น และลำดับยังได้รับการรีเซ็ตเพื่อสร้างค่าโดยอัตโนมัติในช่วงที่เรียงตามลำดับจากค่าคอลัมน์ที่ใหญ่ที่สุด
คอลัมน์ "AUTO_INCREMENT" ที่มีอยู่สามารถอัปเดตได้ ซึ่งจะรีเซ็ตลำดับ "AUTO_INCREMENT" ด้วยเช่นกัน 'AUTO_INCREMENT' ที่สร้างขึ้นโดยอัตโนมัติล่าสุด สามารถดึงค่าได้โดยใช้ฟังก์ชัน 'LAST_INSERT_ID()' ใน SQL หรือใช้ 'mysql_insert_id()' ซึ่งเป็นฟังก์ชัน C API
ฟังก์ชันเหล่านี้เป็นฟังก์ชันเฉพาะของการเชื่อมต่อ ซึ่งหมายความว่าค่าส่งคืนจะไม่ได้รับผลกระทบจากการเชื่อมต่ออื่นๆ ที่ดำเนินการแทรก สามารถใช้ชนิดข้อมูลจำนวนเต็มที่น้อยที่สุดสำหรับคอลัมน์ 'AUTO_INCREMENT' ได้ ซึ่งจะมีขนาดใหญ่พอที่จะเก็บค่าลำดับสูงสุดที่ผู้ใช้ต้องการได้
กฎสำหรับ AUTO_INCREMENT
ต้องปฏิบัติตามกฎต่อไปนี้ในขณะที่ใช้แอตทริบิวต์ AUTO_INCREMENT -
-
ทุกตารางมีคอลัมน์ AUTO_INCREMENT คอลัมน์เดียว ซึ่งโดยทั่วไปประเภทข้อมูลจะเป็นเลขจำนวนเต็ม
-
ต้องสร้างดัชนีคอลัมน์ AUTO_INCREMENT ซึ่งหมายความว่าอาจเป็นคีย์หลักหรือดัชนี UNIQUE ก็ได้
-
คอลัมน์ AUTO_INCREMENT ต้องมีข้อจำกัด NOT NULL
-
เมื่อแอตทริบิวต์ AUTO_INCREMENT ถูกตั้งค่าเป็นคอลัมน์ MySQL จะเพิ่มข้อจำกัด NOT NULL ให้กับคอลัมน์โดยอัตโนมัติด้วยตัวมันเอง
หากไม่ได้เพิ่มคอลัมน์ id ลงในตาราง สามารถใช้คำสั่งด้านล่างได้ -
ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);
หากมีคอลัมน์รหัสอยู่แล้ว สามารถใช้คำสั่งด้านล่างได้ -
ALTER TABLE tableName AUTO_INCREMENT=specificValue;
ในที่นี้ tableName หมายถึงชื่อของตาราง fr ซึ่งจำเป็นต้องตั้งค่าคอลัมน์ 'AUTO_INCREMENT' "specificValue" หมายถึงจำนวนเต็มจากตำแหน่งที่ผู้ใช้ระบุค่า "AUTO_INCREMENT" เพื่อเริ่มต้น