USER_CONSTRAINTS 查不到)| 約束類型 | 可為欄級 | 可為表級 | 可命名 | 多欄位時 |
|---|---|---|---|---|
| NOT NULL | ✓ | ✗ | ✗ | N/A |
| DEFAULT | ✓ | ✗ | ✗ | N/A |
| PRIMARY KEY | ✓ | ✓ | ✓ | 只能表級 |
| UNIQUE | ✓ | ✓ | ✓ | 只能表級 |
| CHECK | ✓ | ✓ | ✓ | 只能表級 |
| FOREIGN KEY | ✓ | ✓ | ✓ | 只能表級 |
CREATE TABLE t (id NUMBER PRIMARY KEY);ALTER TABLE t MODIFY id PRIMARY KEY;CREATE TABLE t (id NUMBER, PRIMARY KEY (id));ALTER TABLE t ADD PRIMARY KEY (id);表級語法可加名稱:CONSTRAINT pk_tid PRIMARY KEY (id),利於後續管理與啟用/停用。
CREATE TABLE t1 (tid NUMBER PRIMARY KEY);
-- 或帶名稱
CREATE TABLE t1 (tid NUMBER CONSTRAINT pk_tid PRIMARY KEY);
CREATE TABLE t2 (tid NUMBER);
ALTER TABLE t2 MODIFY tid PRIMARY KEY;
-- 或
ALTER TABLE t2 MODIFY tid NUMBER PRIMARY KEY;
CREATE TABLE t3 (tid NUMBER, PRIMARY KEY (tid));
-- 或帶名稱
CREATE TABLE t3 (tid NUMBER, CONSTRAINT pk_t3id PRIMARY KEY (tid));
CREATE TABLE t4 (tid NUMBER);
ALTER TABLE t4 ADD PRIMARY KEY (tid);
-- 或帶名稱
ALTER TABLE t4 ADD CONSTRAINT pk_t4id PRIMARY KEY (tid);
PK_表名、FK_表名_參照表、UK_表名_欄位、CK_表名_規則,便於錯誤訊息識別、匯出入、版本控管。DEFAULT 雖非約束,但建表時同欄位定義:status VARCHAR2(1) DEFAULT 'N'。