ให้เราเข้าใจวิธีการทำงานกับคอลัมน์ AUTO_INCREMENT ใน MySQL -
แอตทริบิวต์ AUTO_INCREMENT ใช้เพื่อสร้างข้อมูลระบุเฉพาะสำหรับแถวใหม่ เรามาดูกันว่าคำกล่าวนี้ทำงานอย่างไร ก่อนหน้านั้น พิจารณาคำถามด้านล่าง −
สอบถาม
CREATE TABLE tableName ( id MEDIUMINT NOT NULL AUTO_INCREMENT ชื่อ CHAR(30) ไม่ใช่ NULL คีย์หลัก (id));INSERT INTO tableName (name) VALUES('val1'),('val2'),('val3 '),('val4');SELECT * FROM tableName;
ผลลัพธ์
<ก่อนหน้า>+----+---------+| id | ชื่อ |+----+---------+| 1 | val1 || 2 | val2 || 3 | val3 || 4 | val4 |+---+---------+ในแบบสอบถามข้างต้น ไม่ได้ระบุค่าสำหรับคอลัมน์ 'AUTO_INCREMENT' ดังนั้น MySQL จึงกำหนดลำดับของตัวเลขให้กับคอลัมน์ 'id' โดยอัตโนมัติ นอกจากนี้ยังสามารถกำหนดค่า 0 อย่างชัดเจนเพื่อให้ลำดับตัวเลขเริ่มต้นจาก 0 ซึ่งสามารถทำได้ก็ต่อเมื่อไม่ได้เปิดใช้งานโหมด SQL 'NO AUTO VALUE ON ZERO'
หากคอลัมน์ถูกประกาศเป็น '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 ซึ่งหมายความว่าอาจเป็น PRIMARY KEY หรือดัชนี UNIQUE ก็ได้
-
คอลัมน์ AUTO_INCREMENT ต้องมีข้อจำกัด NOT NULL
-
เมื่อแอตทริบิวต์ AUTO_INCREMENT ถูกตั้งค่าเป็นคอลัมน์ MySQL จะเพิ่มข้อจำกัด NOT NULL ให้กับคอลัมน์โดยอัตโนมัติ