Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

OnDelete

関連するオブジェクトが削除されたときに、現在のテーブルで実行するアクションを指定します。このキーワードは、CardinalityParent または One として指定するリレーションシップ・プロパティにのみ適用されます。その他すべてのコンテキストでの使用は無効です。

使用法

関連するオブジェクトが削除されたときに、現在のテーブルで実行するアクションを指定するには、以下の構文を使用します。

Relationship relname As classname [ Cardinality = cardinality, Inverse = inverse, OnDelete = ondelete ];

ondelete は以下のいずれかの値になります。この説明では、関連するレコードはリレーションシップの相手側に属するレコードまたはオブジェクトであり、参照元レコードはリレーションシップのこちら側にあるレコードまたはオブジェクトです。

  • cascade — 関連するレコードを削除した場合、このテーブル内の参照元レコードも削除されます。

  • noaction — 関連するレコードの削除を試みた場合、失敗します。

  • setdefault — 関連するレコードを削除した場合、このテーブル内の参照元レコードはその既定値に設定されます。

  • setnull — 関連するレコードを削除した場合、このテーブル内の参照元レコードは NULL に設定されます。

詳細

このキーワードは、リレーションシップの相手側でレコードが削除されたときに発生する参照アクションを定義します。

既定値

このキーワードを省略すると、以下のようになります。

  • Parent である Cardinality とのリレーションシップの場合、OnDelete は cascade です。つまり、親レコードを削除する場合、既定では、関連する子レコードが削除されます。

  • One である Cardinality とのリレーションシップの場合、OnDelete は noaction です。つまり、“1” レコードの削除を試みた場合、既定ではそれを指すレコードが相手のテーブルにあれば失敗します。

Relationship Patient As DeepSee.Study.Patient [ Cardinality = parent, Inverse = DiagnosesAsChildren, OnDelete = cascade ];

関連項目

FeedbackOpens in a new tab