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

Insert ข้อมูลในตารางที่มีคอลัมน์เดียวเป็น AUTO_INCREMENT ใน MySQL

บทนำ

ตารางที่มีคอลัมน์เดียวและคอลัมน์นั้นเป็น AUTO_INCREMENT PRIMARY KEY สามารถ INSERT ได้โดยไม่ระบุค่า (หรือระบุ 0/NULL) ระบบจะสร้าง ID อัตโนมัติ

ตัวอย่างการสร้างตาราง

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY(StudentId)
    -> );
Query OK, 0 rows affected (0.60 sec)

เพิ่มข้อมูล (ระบุค่า 0 สำหรับ AUTO_INCREMENT)

mysql> INSERT INTO DemoTable(StudentId) VALUES(0);

หมายเหตุ: ใส่ 0, NULL, หรือไม่ระบุคอลัมน์ก็ได้ ผลลัพธ์เหมือนกัน

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+-----------+
| StudentId |
+-----------+
| 1         |
+-----------+
1 row in set (0.00 sec)

คำอธิบาย

  • คอลัมน์ StudentId เป็น AUTO_INCREMENT PRIMARY KEY
  • INSERT โดยให้ค่า 0 (หรือ NULL) → MySQL จะมอบหมายค่าถัดไป (1) อัตโนมัติ
  • นี่คือรูปแบบตาราง Sequence/ID Generator แบบง่าย

การ INSERT หลายแถวพร้อมกัน

INSERT INTO DemoTable() VALUES(), (), (), ();
-- หรือ
INSERT INTO DemoTable(StudentId) VALUES(0), (0), (0), (0);

การได้ค่า ID ที่เพิ่ง Insert (LAST_INSERT_ID)

INSERT INTO DemoTable() VALUES();
SELECT LAST_INSERT_ID();  -- คืนค่า ID ที่เพิ่งสร้าง (Session-specific)

การประยุกต์: ตาราง Log/Sequence

CREATE TABLE LogSequence (
    Id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- ทุกครั้งที่ต้องการ ID ใหม่
INSERT INTO LogSequence() VALUES();
SELECT LAST_INSERT_ID();