《Oracle子句语法速查》【 COLUMN CONSTRAINT 】
列制約を指定する
→ [ CONSTRAINT 制約名 ] →
→┬ [ NOT ] NULL ─────────────────────────────┬→
│[ 列に NULL を含める事が出来るか否かを指定する ] │
├ UNIQUE ───────────────────────────────┤
│[ 列の値に重複を許さない事を指定する ] │
├ PRIMARY KEY ─────────────────────────────┤
│[ 列を主キーとして使用する事を指定する(重複不可になる) ] │
├ REFERENCES [ スキーマ . ] 表名 [ (┬ 列名 ┬) ] [ ON DELETE CASCADE ] ┤
│ └ ← , ┘ │
│[ 指定した表との参照整合性制約を指定する ] │
│[ ON DELETE CASCADE : 行削除すると同時に、外部表の該当行を削除する ]│
└ CHECK ( 条件式 ) ───────────────────────────┘
[ 列に対する条件を指定する(この条件を満たさない値は表に格納できない) ]
→┬────────────────────────────────────┬→
├ [ NOT ] DEFERRABLE ] ─────────────────────────┤
│[ チェックを COMMIT 時点まで遅らせる( NOT 指定時は DML 文実行時 ) ] │
├ INITIALLY { IMMEDIATE | DEFERRED } ──────────────────┤
│[ IMMEDIATE : デフォルトで DML 文実行時にチェックを行う ] │
│[ DEFERRED : デフォルトで COMMIT 実行時にチェックを行う ] │
└ ← ──────────────────────────────────┘
→ [ USING INDEX ┬─────────────────────────┬ ] →
├<SEGMENT ATTRIBUTES句> ─────────────┤
├ NOSORT ───────────────┤
│[ データが昇順に格納されている為にソートしない ]│
└ ← ───────────────────────┘
[ UNIQUE, PRIMARY KEY 制約の場合に使用する索引情報を指定する ]
→ [ ┬ EXCEPTIONS INTO [ スキーマ . ] 表名 ────────┬ ] →
│[ 制約に違反する列の ROWID を格納する表を指定する ] │
├ ENABLE VALIDATE ─────────────────┤
│[ 既存データが制約に従っているか検証する ] │
├ ENABLE NOVALIDATE ─────────────────┤
│[ 既存データが制約に従っているか検証しない ] │
└ DISABLE ──────────────────────┘
[ 制約を無効にする ]