外部キー関係を有効にするには、外部キーのエントリが参照先のテーブルのローのプライマリキー値に対応していなければなりません。場合によっては、プライマリキー以外のユニークなカラムが参照先になります。
外部キーは、通常別のテーブルにあるプライマリキーまたは一意性制約を参照します。そのプライマリキーが存在しない場合、対応する外部キーは「オーファン」と呼ばれます。SQL Anywhere は、データベースに参照整合性に違反するローがないかを自動的に確認します。このプロセスを「参照整合性の検証」と呼びます。データベースサーバーは、オーファン数をカウントし参照整合性を調べます。
複数カラムの外部キーを使用する場合、MATCH 句を使用して、孤立したローの構成内容と参照整合性違反の構成内容を対比できます。MATCH 句では、また、キーの一意性を指定することで、一意性を別に宣言する必要がなくなります。
次に、指定できる MATCH タイプを示します。
MATCH [ UNIQUE ] SIMPLE 外部キーテーブルのローに一致が発生するのは、すべてのカラム値がプライマリキーテーブルのローにある対応するカラム値と一致する場合です。外部キーテーブルでローが孤立するのは、外部キーの少なくとも 1 つのカラム値が NULL である場合です。
MATCH SIMPLE はデフォルトの動作です。
UNIQUE キーワードを指定すると、NULL 以外のキー値に対して、参照テーブルで一致が 1 つのみになります。
MATCH [ UNIQUE ] FULL 外部キーテーブルのローに一致が発生するのは、いずれの値も NULL ではなく、値がプライマリキーテーブルのローにある対応するカラム値と一致する場合です。ローが孤立するのは、外部キーのすべてのカラム値が NULL の場合です。
UNIQUE キーワードを指定すると、NULL 以外のキー値に対して、参照テーブルで一致が 1 つのみになります。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |