Constraint doc
:
CREATE TABLE "EVALUATION" (
"EVALUATION_ID" NUMBER(20, 0) NOT NULL ENABLE,
ENABLE/DISABLE
制約がオンまたはオフであることを示します。デフォルトでは、ENABLE
使用されます。
ENABLE句 テーブル内のデータに制約を適用する場合は、ENABLEを指定します。
無効条項 DISABLEを指定して、整合性制約を無効にします。無効にされた整合性制約は、有効な制約とともにデータディクショナリに表示されます。制約を作成するときにこの句を指定しない場合、Oracleは自動的に制約を有効にします。
制約はデータの整合性を確保するために使用されますが、制約を無効にする必要があるシナリオがあります。
Managing Integrity
:
制約の無効化
整合性制約によって定義されたルールを適用するには、制約を常に有効にする必要があります。ただし、次のパフォーマンス上の理由から、テーブルの整合性制約を一時的に無効にすることを検討してください。
大量のデータをテーブルにロードする場合
テーブルに大規模な変更を加えるバッチ操作を実行する場合(たとえば、既存の番号に1000を追加してすべての従業員の番号を変更する場合)
一度に1つのテーブルをインポートまたはエクスポートする場合
3つのケースすべてで、整合性制約を一時的に無効にすると、特にデータウェアハウス構成で、操作のパフォーマンスが向上する可能性があります。
制約が無効になっているときに、制約に違反するデータを入力することができます。したがって、前の箇条書きにリストされている操作のいずれかを完了した後は、常に制約を有効にする必要があります。
整合性制約の効率的な使用:手順
整合性制約状態を次の順序で使用すると、最高のメリットを確実に得ることができます。
状態を無効にします。
操作(ロード、エクスポート、インポート)を実行します。
novalidate状態を有効にします。
この順序で制約を使用する利点は次のとおりです。
ロックは保持されません。
すべての制約は、状態を同時に有効にすることができます。
制約の有効化は並行して行われます。
テーブルでの同時アクティビティは許可されています。
編集:
問題は、なぜ明白なを使用するのかということです。 デフォルトでオンになっている場合のキーワード:
私は言うでしょう:
- わかりやすくするために(PythonEIBTIルール明示的は暗黙的よりも優れています )
- 完全性のために
- 個人の趣向やコーディング規約
これは次と同じカテゴリです:
CREATE TABLE tab(col INT NULL)
なぜNULL
を使用するのですか 列がデフォルトでnull許容の場合。