SQL การใช้งาน AUTO INCREMENT

AUTO INCREMENT ใน SQL เป็นฟีเจอร์ที่ช่วยสร้างเลขลำดับโดยอัตโนมัติเมื่อมีการแทรกข้อมูลใหม่เข้าไปในตาราง โดยทั่วไป AUTO INCREMENT มักถูกใช้กับคอลัมน์ที่เป็น Primary Key เพื่อให้มั่นใจได้ว่าข้อมูลในคอลัมน์นั้นมีความเป็นเอกลักษณ์ (Unique) และไม่ซ้ำกัน

หลักการทำงานของ AUTO INCREMENT

  • คอลัมน์ที่ถูกตั้งค่าเป็น AUTO INCREMENT จะเริ่มต้นที่ค่าที่กำหนด (ส่วนใหญ่เริ่มที่ 1) และเมื่อมีการแทรกข้อมูลใหม่เข้าไป คอลัมน์นี้จะเพิ่มค่าโดยอัตโนมัติทีละ 1
  • AUTO INCREMENT มักถูกใช้ในฟิลด์ที่เป็น Primary Key เช่นรหัสประจำตัวของผู้ใช้งาน (ID) ที่ต้องไม่ซ้ำกัน

โครงสร้างพื้นฐานของ AUTO INCREMENT

CREATE TABLE table_name (
    column1 INT AUTO_INCREMENT,
    column2 data_type,
    ...
    PRIMARY KEY (column1)
);

ในกรณีนี้ column1 จะเป็นคอลัมน์ที่ทำงานแบบ AUTO INCREMENT และคอลัมน์นี้จะถูกตั้งค่าเป็น Primary Key ด้วย

ตัวอย่างการใช้งาน

สมมติว่าเราต้องการสร้างตาราง employees ที่เก็บข้อมูลพนักงาน โดยมีคอลัมน์ employee_id ที่เป็น AUTO INCREMENT เพื่อกำหนดรหัสพนักงานให้เป็นเลขลำดับอัตโนมัติ

SQL
CREATE TABLE employees (
    employee_id INT AUTO_INCREMENT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    PRIMARY KEY (employee_id)
);
  • employee_id คือคอลัมน์ที่ใช้ AUTO INCREMENT ซึ่งจะสร้างหมายเลขพนักงานโดยอัตโนมัติเมื่อมีการเพิ่มพนักงานใหม่
  • first_name, last_name และ email คือคอลัมน์ที่เก็บข้อมูลพนักงาน เช่น ชื่อ, นามสกุล, และอีเมล
  • คอลัมน์ employee_id ถูกกำหนดให้เป็น PRIMARY KEY เพื่อให้มั่นใจได้ว่าไม่มีค่า employee_id ซ้ำกัน

ในการเพิ่มข้อมูล เราไม่จำเป็นต้องระบุค่าในคอลัมน์ employee_id เพราะฐานข้อมูลจะเพิ่มค่าตามลำดับโดยอัตโนมัติ

SQL
INSERT INTO employees (first_name, last_name, email)
VALUES ('John', 'Doe', '[email protected]');

INSERT INTO employees (first_name, last_name, email)
VALUES ('Jane', 'Smith', '[email protected]');
  • เราไม่จำเป็นต้องใส่ค่าของ employee_id ในคำสั่ง INSERT INTO เพราะ AUTO INCREMENT จะจัดการให้โดยอัตโนมัติ
  • ตัวอย่างนี้แทรกข้อมูลของพนักงาน 2 คน คือ John Doe และ Jane Smith

การกำหนดค่าเริ่มต้นของ AUTO INCREMENT

เราสามารถตั้งค่าเริ่มต้นของ AUTO INCREMENT ได้ โดยใช้คำสั่งดังต่อไปนี้เพื่อเริ่มต้นค่าที่ 100 แทนที่จะเริ่มต้นที่ 1

SQL
ALTER TABLE employees AUTO_INCREMENT = 100;
  • คำสั่งนี้จะปรับให้ค่าเริ่มต้นของ AUTO INCREMENT เป็น 100 และการแทรกข้อมูลใหม่ในครั้งถัดไปจะมีค่า employee_id เริ่มที่ 100

การรีเซ็ตค่า AUTO INCREMENT

หากต้องการรีเซ็ตค่า AUTO INCREMENT ให้กลับมาเริ่มต้นที่ 1 (หรือค่าที่ต้องการ) เราสามารถใช้คำสั่ง TRUNCATE เพื่อล้างข้อมูลและรีเซ็ตค่าได้ ดังนี้

SQL
TRUNCATE TABLE employees;
  • คำสั่งนี้จะลบข้อมูลทั้งหมดในตาราง employees และรีเซ็ตค่า AUTO INCREMENT ให้กลับไปเริ่มที่ 1 อีกครั้ง

สรุป

AUTO INCREMENT เป็นฟีเจอร์ที่มีประโยชน์มากในการจัดการข้อมูลที่ต้องการลำดับอัตโนมัติ โดยทั่วไปมักใช้กับคอลัมน์ที่เป็น PRIMARY KEY หรือคอลัมน์ที่ใช้ระบุเอกลักษณ์ในตาราง ข้อดีของการใช้ AUTO INCREMENT คือเราไม่จำเป็นต้องใส่ค่าลำดับเองเมื่อแทรกข้อมูลใหม่

แชร์เรื่องนี้