PRIMARY KEY 主鍵約束
PRIMARY KEY 主鍵用來唯一識別資料表中的每一筆記錄。主鍵欄位的值必須是唯一的,且不能是 NULL。
主鍵的特性:
建立資料表時設定
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100)
);
也可以寫在資料表定義的最後:
CREATE TABLE customers (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
命名主鍵約束
CREATE TABLE customers (
id INT NOT NULL,
name VARCHAR(50) NOT NULL,
CONSTRAINT pk_customer PRIMARY KEY (id)
);
組合主鍵 (Composite Key)
當主鍵由多個欄位組成時,稱為組合主鍵:
CREATE TABLE order_items (
order_id INT,
product_id INT,
quantity INT,
CONSTRAINT pk_order_item PRIMARY KEY (order_id, product_id)
);
這表示 order_id 和 product_id 的組合必須唯一。
新增主鍵約束
ALTER TABLE customers ADD PRIMARY KEY (id);
-- 或命名約束
ALTER TABLE customers ADD CONSTRAINT pk_customer PRIMARY KEY (id);
移除主鍵約束
-- MySQL
ALTER TABLE customers DROP PRIMARY KEY;
-- SQL Server / PostgreSQL
ALTER TABLE customers DROP CONSTRAINT pk_customer;
主鍵與 AUTO INCREMENT
主鍵通常會搭配 AUTO INCREMENT 使用,讓資料庫自動產生唯一的編號:
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
);