首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle PRIMARY KEY 主鍵約束完整語法與實戰操作

     編輯:Oracle 教學

Oracle PRIMARY KEY 主鍵約束完整語法與實戰操作

PRIMARY KEY 約束唯一識別表中每一列,**隱含 NOT NULL + UNIQUE**,每表僅能定義一個主鍵 (可為單欄位或複合鍵)。本文系統整理建立、刪除、查詢與實戰範例。

語法總覽

建表時定義 (欄位級)

CREATE TABLE table_name (
  col1 data_type,
  col2 data_type,
  ...
  [CONSTRAINT constraint_name] PRIMARY KEY (col1, col2, ...)
);

事後新增 (ALTER TABLE)

ALTER TABLE table_name DROP CONSTRAINT constraint_name;
-- 無法使用 DROP PRIMARY KEY (column) 語法

實戰操作範例

範例 1:事後新增單欄位主鍵

-- 寫法一:欄位級
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 VALIDATE
ORA-01400: cannot insert NULL主鍵欄位隱含 NOT NULL提供非 NULL 值或使用序列自動填充

							
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved