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แทน