制約
制約
- 宣言の容易性
- ルールの集中化
- アプリケーション開発の生産性の向上
- パフォーマンスの向上
- 性や宇野使用禁止/使用可能による柔軟性の向上
提供される制約
- NOT NULL
- UNIQUE
- CHECK
- PRIMARY KEY
- FOREIGN KEY
制約の作成
列制御構文
CRATE TABLE 表名 ( 列名 データ型 [ CONSTRAINT 制約名] 制約 ...)
表制御構文
CRATE TABLE 表名 ( 列名 データ型 } [ CONSTRAINT 制約名] 制約 ...)
制約名を省略した場合、SYS_Cn(nには位置の数値)となる
NOT NULL
列名 データ型 CONSTRAINT const_col1_nn NOT NULL
表制御構文では定義できない
UNIQUE
列名 データ型 CONSTRAINT const_col1_U UNIQUE
列名1 データ型, 列名2 データ型, CONSTRAINT const_col1_2_U UNIQUE(列名1, 列名2)
CHECK
列名 データ型, CONSTRAINT const_col1_CK CHECK (条件)
下記の指定はできない
- CURRVAL, NEXTVAL, LEVEL, ROWNUM 擬似列の参照
- SYSDATE, UID, USER, USERNV 関数
- 別の行の値を参照する問い合わせ
PRIMARY KEY
列名 データ型, CONSTRAINT const_col1_PK PRIMARY KEY
FOREIGN KEY
列名 データ型, CONSTRAINT const_col1_PK REFERENCES 参照表[(参照列)]
ON DELETE
外部参照の制約で親の行が削除されたら子表の該当行も一緒に削除する場合
- ON DELTE CASCADE:子表の該当行も一緒に削除する
- ON DELETE SET NULL:子表の該当行にNULLを挿入する
このページのURL: