การกำหนดคอลัมน์ Primary Key ให้เพิ่มค่าอัตโนมัติ
ใช้ AUTO_INCREMENT ร่วมกับ PRIMARY KEY เพื่อให้คอลัมน์ ID เพิ่มค่าอัตโนมัติทุกครั้งที่ INSERT ข้อมูลใหม่ สามารถรวมกับ ZEROFILL เพื่อเติมศูนย์นำหน้าได้
ไวยากรณ์
CREATE TABLE your_table_name (
your_column_name INT(6) ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY (your_column_name)
);
ตัวอย่างสร้างตาราง
CREATE TABLE DemoTable (
UserId INT(6) ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY (UserId)
);
เพิ่มข้อมูลโดยไม่ระบุค่า UserId
INSERT INTO DemoTable VALUES (); INSERT INTO DemoTable VALUES (); INSERT INTO DemoTable VALUES (); INSERT INTO DemoTable VALUES ();
ผลลัพธ์: UserId เพิ่มอัตโนมัติและเติมศูนย์ 6 หลัก
+--------+ | UserId | +--------+ | 000001 | | 000002 | | 000003 | | 000004 | +--------+
คำอธิบาย:
INT(6) ZEROFILL: แสดงค่าความกว้าง 6 หลัก เติมศูนย์นำหน้า (Display width only, ไม่จำกัดค่าสูงสุด)NOT NULL: ห้ามเป็น NULL (Primary Key ต้อง NOT NULL เสมอ)AUTO_INCREMENT: เริ่มจาก 1 เพิ่มทีละ 1 อัตโนมัติPRIMARY KEY: กำหนดเป็นคีย์หลัก
คำสั่งเพิ่มเติมที่น่ารู้:
ALTER TABLE DemoTable AUTO_INCREMENT = 1000;เปลี่ยนค่าเริ่มต้นถัดไปLAST_INSERT_ID()ดูค่า AUTO_INCREMENT ที่เพิ่งสร้าง (Session-level)- MySQL 8.0+ รองรับ
AUTO_INCREMENTบนคอลัมน์ FLOAT/DOUBLE ได้ (แต่ไม่แนะนำ)
⚠ ข้อควรระวัง: ZEROFILL จะถูก deprecated ใน MySQL 8.0.17+ ควรจัดรูปแบบการแสดงผลที่ Application Layer แทน