PRIMARY KEY 約束唯一識別表中每一列,**隱含 NOT NULL + UNIQUE**,每表僅能定義一個主鍵 (可為單欄位或複合鍵)。本文系統整理建立、刪除、查詢與實戰範例。
CREATE TABLE table_name ( col1 data_type, col2 data_type, ... [CONSTRAINT constraint_name] PRIMARY KEY (col1, col2, ...) );
ALTER TABLE table_name DROP CONSTRAINT constraint_name; -- 無法使用 DROP PRIMARY KEY (column) 語法
-- 寫法一:欄位級 CREATE TABLE p2 ( pid NUMBER(4) PRIMARY KEY, pname VARCHAR2(20), psex CHAR(2) ); -- 寫法二:欄位級 + 顯式命名 CREATE TABLE p3 ( pid NUMBER(4) NOT NULL, pname VARCHAR2(20), psex CHAR(2), CONSTRAINT pk_p3 PRIMARY KEY (pid) ); -- 寫法三:複合主鍵 (表級) CREATE TABLE p4 ( pid NUMBER(4) NOT NULL, pname VARCHAR2(20), psex CHAR(2), CONSTRAINT pk_p4 PRIMARY KEY (pid, pname) );
PERSON_PK)USING INDEX 子句自訂索引屬性 (TABLESPACE、PCTFREE 等)錯誤 原因 解決 ORA-02270: no matching unique or primary key 外鍵參考欄位無主鍵/唯一鍵 先在父表建立主鍵或唯一鍵 ORA-02437: cannot validate primary key 啟用主鍵時資料有重複/NULL 清理資料或 DISABLE VALIDATEORA-01400: cannot insert NULL 主鍵欄位隱含 NOT NULL 提供非 NULL 值或使用序列自動填充