OceanBaseデータベースは、さまざまな種類の完全性制約をサポートしています。
ユーザーは以下の完全性制約を使用して、入力される列値を制限できます:
NOT NULL完全性制約UNIQUE KEY完全性制約PRIMARY KEY完全性制約参照整合性制約
NOT NULL 完全性制約
NULLルール(Null Rule)は、特定の列に定義されるルールであり、挿入または更新されるデータ行の列値がNULL値であることを禁止します。
UNIQUE KEY 完全性制約
一意値ルール(Unique Value Rule)は、特定の列(または列の集合)に定義されるルールであり、挿入または更新されるデータ行のその列(または列の集合)の値が一意であることを保証します。
PRIMARY KEY 完全性制約
主キー値ルール(Primary Key Value Rule)は、特定のキー(Key)(キーとは、1列または1列の集合を指します)に定義されるルールであり、テーブル内の各データ行が特定のキー値によって一意に特定されることを保証します。
参照整合性制約
参照整合性ルール(Referential Integrity Rule)は、特定のキー(Key)(キーとは、1列または1列の集合を指します)に定義されるルールであり、任意のキー値が関連テーブル(Related Table)の特定のキー値、すなわち参照値(Referenced Value)と一致することを保証します。
参照整合性制約では、参照値に対してどのようなデータ操作(Data Manipulation)を実行できるか、およびこれらの操作が依存値(Dependent Value)にどのような影響を与えるかについて、以下の具体的なルールを参照してください:
Restrict:参照値の更新と削除を許可しません。
Set to Null:参照値が更新または削除された場合、影響を受けるすべての依存値は
NULLに設定されます。Set to Default:参照値が更新または削除された場合、影響を受けるすべての依存値にデフォルト値が設定されます。
Cascade:参照値が更新された場合、影響を受けるすべての依存値も同じ値に更新されます。参照データ行(Referenced Row)が削除された場合、影響を受けるすべての依存データ行(Dependent Row)も削除されます。
No Action:参照値の更新と削除を許可しません。このルールは
RESTRICTとは異なり、ステートメントの終了時にのみチェックされます。制約が遅延(Deferred)されている場合は、トランザクションの終了時にチェックされます。