Advanced Operations Guide (v11)

外部キーの設定

外部キーは、SQL ステートメントまたは Pervasive PSQL Control Center を使用して作成することができます。外部キーを作成するときに、同時に関連する規則も定義できます。同一のキーに複数の規則を定義することができます。関連する規則を指定しないで外部キーを作成した場合、更新と削除はどちらもデフォルトの参照整合性によって制限されます。

テーブル作成中に外部キーを作成する

列の定義で REFERENCES キーワードを使用して、テーブル作成時に外部キーを作成することができます。外部キーは 1 つまたは複数の列で構成されます。列のデータ型は、この外部キーが参照する主キーと同じでなければなりません。次の例では your_id が作成され、mytable.id を参照する外部キーに指定されることを示しています。

CREATE TABLE yourtable (your_id INTEGER REFERENCES mytable(id) ON DELETE CASCADE, 
yourname CHAR(20)) 

ステートメントの最後に外部キーの指定を追加することもできます。キーに複数列を使用する場合、この技法を使う必要があります。

CREATE TABLE yourtable (your_id INTEGER,  
yourname CHAR(20),  
FOREIGN KEY(your_id, yourname) REFERENCES  
mytable(id, myname) ON DELETE CASCADE) 

外部キーを作成すると、データベース エンジンは指定された列にインデックスを追加します。

ほかの例については、『SQL Engine Reference』の「CREATE TABLE」を参照してください。

既存のテーブルに外部キーを追加する

PCC を使用して、または ADD FOREIGN KEY を使った ALTER TABLE ステートメントによって、既存のテーブルに外部キーを追加することができます。『Pervasive PSQL User's Guide』の「外部キーのタスク」 および 「SQL Editor」 を参照してください。

次の例ではこの外部キーに削除規則と更新規則の 2 つの規則が定義されています。

ALTER TABLE yourtable ADD FOREIGN KEY (your_id,yourname) REFERENCES 
mytable(id,myname) ON DELETE CASCADE ON UPDATE RESTRICT 

DELETE CASCADE は慎重に使用してください。削除カスケードに記載されている例を参照してください。

ほかの例については、『SQL Engine Reference』の「ALTER TABLE」を参照してください。


主キーの設定

Btrieve およびリレーショナル制約間の相互作用