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

วิธีสร้าง Primary Key แบบ Auto Increment ใน MySQL

การกำหนดคอลัมน์ 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 แทน