Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » データ整合性 » エンティティ整合性と参照整合性

 

参照整合性

外部キー関係を有効にするには、外部キーのエントリが参照先のテーブルのローのプライマリキー値に対応していなければなりません。場合によっては、プライマリキー以外のユニークなカラムが参照先になります。

外部キーは、通常別のテーブルにあるプライマリキーまたは一意性制約を参照します。そのプライマリキーが存在しない場合、対応する外部キーは「オーファン」と呼ばれます。SQL Anywhere は、データベースに参照整合性に違反するローがないかを自動的に確認します。このプロセスを「参照整合性の検証」と呼びます。データベースサーバーは、オーファン数をカウントし参照整合性を調べます。

複数カラムの外部キーを使用する場合、MATCH 句を使用して、孤立したローの構成内容と参照整合性違反の構成内容を対比できます。MATCH 句では、また、キーの一意性を指定することで、一意性を別に宣言する必要がなくなります。

次に、指定できる MATCH タイプを示します。

  • MATCH [ UNIQUE ] SIMPLE   外部キーテーブルのローに一致が発生するのは、すべてのカラム値がプライマリキーテーブルのローにある対応するカラム値と一致する場合です。外部キーテーブルでローが孤立するのは、外部キーの少なくとも 1 つのカラム値が NULL である場合です。

    MATCH SIMPLE はデフォルトの動作です。

    UNIQUE キーワードを指定すると、NULL 以外のキー値に対して、参照テーブルで一致が 1 つのみになります。

  • MATCH [ UNIQUE ] FULL   外部キーテーブルのローに一致が発生するのは、いずれの値も NULL ではなく、値がプライマリキーテーブルのローにある対応するカラム値と一致する場合です。ローが孤立するのは、外部キーのすべてのカラム値が NULL の場合です。

    UNIQUE キーワードを指定すると、NULL 以外のキー値に対して、参照テーブルで一致が 1 つのみになります。

 例 1
 例 2
 例 3

参照循環性