| 類型 | 關鍵字 | 作用 |
|---|---|---|
| 主鍵 | PRIMARY KEY | 唯一標識行,非空+唯一 |
| 唯一 | UNIQUE | 列值唯一,允許單個 NULL |
| 外鍵 | FOREIGN KEY | 引用父表主鍵/唯一鍵 |
| 非空 | NOT NULL | 列不可為 NULL |
| 檢查 | CHECK | 自定義布爾表達式驗證數據 |
研究生編號檢查約束條件student_id >= 20020101 AND student_id <= 20030909ALTER TABLE "SCOTT"."STUDENT"
ADD (CONSTRAINT "研究生編號檢查約束條件"
CHECK (student_id >= 20020101 AND student_id <= 20030909));
腳本 createcheck.sql,截圖:

嘗試插入 STUDENT_ID = 20010101 (超出下限) 的記錄:
INSERT INTO "SCOTT"."STUDENT"
("STUDENT_ID","NAME","PROFESSIONAL","BIRTHDAY","DIRECTOR_ID")
VALUES (20010101,'紀曉芙','軟件工程',
TO_DATE('15-7月-1971','dd-Mon-yyyy HH:MI:SS AM'),200201);
報錯:ORA-02290: check constraint (SCOTT.研究生編號檢查約束條件) violated。截圖:

CK_表名_列名_業務含義,便於錯誤日誌定位。DISABLE CONSTRAINT,導入後 ENABLE VALIDATE 或 ENABLE NOVALIDATE (僅驗證新數據)。V$CONSTRAINT 監控約束狀態 (ENABLED/VALIDATED)。