MySQL การใช้งาน PRIMARY KEY Constraint

PRIMARY KEY (คีย์หลัก) คือข้อกำหนดที่ใช้ระบุแถว (row) ให้ไม่ซ้ำกันในตาราง เป็นคอลัมน์ที่ใช้เป็นตัวระบุเอกลักษณ์ (Unique Identifier) สำหรับแต่ละแถวข้อมูล ค่าที่เก็บใน PRIMARY KEY ต้อง ไม่ซ้ำกัน และ ห้ามเป็น NULL

คุณสมบัติของ PRIMARY KEY

  • มีได้เพียง หนึ่งชุดเท่านั้น ต่อหนึ่งตาราง
  • คอลัมน์ที่เป็น PRIMARY KEY จะมีการบังคับใช้ ทั้ง NOT NULL และ UNIQUE โดยอัตโนมัติ
  • มักใช้กับคอลัมน์ id, user_id, order_id ฯลฯ เพื่อเป็นตัวแทนแถวข้อมูลแต่ละแถว

รูปแบบการใช้งาน

แบบกำหนดในคอลัมน์

column_name datatype PRIMARY KEY

แบบกำหนดภายนอกคอลัมน์

CREATE TABLE table_name (
  column1 datatype,
  column2 datatype,
  PRIMARY KEY (column1)
);

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

คอลัมน์เดียวเป็น PRIMARY KEY

SQL
CREATE TABLE customers (
  customer_id INT AUTO_INCREMENT PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50)
);
  • customer_id จะเป็นรหัสหลักของตารางนี้
  • แต่ละแถวจะมี customer_id ไม่ซ้ำกัน

ใช้ PRIMARY KEY แบบกำหนดภายนอก

SQL
CREATE TABLE products (
  product_id INT,
  product_name VARCHAR(100),
  PRIMARY KEY (product_id)
);

PRIMARY KEY แบบหลายคอลัมน์ (Composite Key)

SQL
CREATE TABLE order_items (
  order_id INT,
  product_id INT,
  quantity INT,
  PRIMARY KEY (order_id, product_id)
);
  • ใช้ order_id และ product_id ร่วมกันเป็นรหัสหลัก
  • ป้องกันไม่ให้สินค้าเดียวกันในออเดอร์เดียวกันถูกเพิ่มซ้ำ

ข้อควรระวัง

  • PRIMARY KEY ต้องมีค่าในทุกแถว ห้ามใส่ NULL
  • ค่าห้ามซ้ำ ถ้าใส่ค่าซ้ำกันจะเกิด Error
  • ไม่สามารถมี PRIMARY KEY ซ้ำในตารางเดียวได้ (มีได้ชุดเดียวเท่านั้น)
  • หากต้องการให้หลายคอลัมน์ไม่ซ้ำกัน แต่ไม่ใช่คีย์หลัก ใช้ UNIQUE แทน
แชร์เรื่องนี้