IBM® Informix® 12.10

ON DELETE CASCADE オプションの使用

オプション ON DELETE CASCADE を使用すると、親表の行が削除されたときに、子表の対応する行を削除するかを指定できます。カスケード削除を指定しないと、データベース サーバのデフォルトの動作により、表内のデータがほかの表により参照 される場合、そのデータは削除できません。

このオプションを指定すると、後で親表の行を削除したときに、データベース サーバに より、子表内にあるその行 (外部キー) に関連するすべての行も削除されます。カスケード削除機能の主な利点は、削除操作を実行するために必要な SQL 文の量を減らせることです。

例えば、表 all_candy には、主キーとして列 candy_num があります。 表 hard_candy は、列 candy_num を外部キーとして参照します。 次の CREATE TABLE 文は、外部キーに対するカスケード削除オプションを設定した表 hard_candy を作成します。
CREATE TABLE all_candy 
   (candy_num SERIAL PRIMARY KEY,
    candy_maker CHAR(25));

CREATE TABLE hard_candy 
   (candy_num INT, 
    candy_flavor CHAR(20),
    FOREIGN KEY (candy_num) REFERENCES all_candy
    ON DELETE CASCADE);

ON DELETE CASCADE は従属表に対して指定されるため、all_candy 表の行が削除されると、hard_candy 表の行も削除されます。カスケード削除が設定された表から行を削除する場合の構文の制限とロックの実装につ いては、表にカスケード削除がある場合の考慮事項を参照してください。


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月