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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データ整合性の確保 » エンティティ整合性と参照整合性の確保

 

参照整合性アクション

他から参照されているプライマリ・キーの更新や削除に対して参照整合性を維持する最も単純な方法は、更新や削除を禁止することです。しかしそれ以外にも、参照整合性を保つために各外部キーを操作することもできます。データベース管理者やテーブル所有者は、CREATE TABLE 文と ALTER TABLE 文を使って、変更されたプライマリ・キーを参照している外部キーに対し、整合性の違反が発生したときに実行するアクションを指定できます。

参照整合性アクションは、プライマリ・キーの更新と削除に対してそれぞれ別に指定できます。

  • RESTRICT   参照されているプライマリ・キーの値をユーザが変更しようとした場合、エラーを生成してその変更を防止します。これが参照整合性アクションのデフォルトです。

  • SET NULL   変更されたプライマリ・キーを参照するすべての外部キーの値を NULL にします。

  • SET DEFAULT   変更されたプライマリ・キーを参照するすべての外部キーを、そのカラムの (テーブル定義で指定されている) デフォルト値にします。

  • CASCADE   ON UPDATE とともに使用すると、更新されたプライマリ・キーを参照するすべての外部キーを新しい値に更新します。ON DELETE とともに使用すると、削除されたプライマリ・キーを参照する外部キーを含むすべてのローを削除します。

参照整合性アクションはシステム・トリガとして実装されます。トリガはプライマリ・テーブル上で定義され、セカンダリ・テーブルの所有者のパーミッションを使って実行されます。つまり、特にパーミッションが与えられていなくても、所有者の違うテーブルに対するカスケード処理ができることになります。