完全性制約(Integrity Constraint)は、データが業務ルールに従うことを保証し、ルールに適合しない不正なデータがデータテーブルに挿入されるのを防ぐために使用されます。本記事では、完全性制約を使用してデータベースのテーブルに不正なデータの挿入を防ぐ方法について説明します。
OceanBaseデータベースのOracleモードでは、テナントは完全性制約を使用して、ユーザーがデータベースのテーブルに不正なデータを挿入するのを防ぐことができます。完全性制約の役割は、データベース内に保存される情報が一定の業務ルールに従うことを保証することです。DMLステートメントの実行結果が完全性制約に違反した場合、ステートメントはロールバックされ、エラーメッセージが返されます。ビューおよびテーブルのシノニム(Synonym)に対して実行される操作は、ベーステーブル(Base Table)上の完全性制約に従う必要があります。
OceanBaseデータベースのOracleモードでは、ユーザーは制約の ENABLE および DISABLE オプションを変更することで、その制約が有効になるかどうかを制御できます。
例えば、ユーザーが employees テーブルの salary 列に完全性制約を定義したとします。この完全性制約は、salary 列の数値が10000より大きいデータ行を employees テーブルに挿入できないように規定しています。特定の INSERT または UPDATE ステートメントがこの完全性制約に違反した場合、ステートメントはロールバックされ、エラーメッセージが返されます。
完全性制約の詳細については、データの完全性を参照してください。