3.7 有効期間サポートのための制約管理
この項では、参照整合性制約と一意制約に影響する有効期間サポートに関連した考慮事項について説明します。
3.7.1 参照整合性制約
有効期間サポートを伴う2つのバージョン対応表の間に参照整合性制約が存在する場合は、制約の規定時に各行の有効期間が考慮されます。たとえば、DEPARTMENTS表に、EMPLOYEES表のEMPLOYEE_ID列を参照する外部キーであるMANAGER_ID列が含まれている(つまり、部門マネージャは既存の従業員である必要がある)とします。両方の表が有効期間サポートを伴うバージョン対応表であり、挿入操作または更新操作により新規のDEPARTMENTS.MANAGER_ID値が作成されるとします。この場合、DEPARTMENTS.WM_VALID値が部門マネージャとなる従業員のEMPLOYEES.WM_VALID値の範囲内になければ、操作は失敗します。(つまり、新規の部門マネージャが挿入または更新操作に対して指定される期間またはデフォルト設定される期間に有効な従業員でなければ、操作は失敗します。)
参照整合性制約に含まれる表の一方または両方が、有効期間サポートを伴うバージョン対応表でない場合、制約の規定時には有効期間が無視されます。
親トピック: 有効期間サポートのための制約管理
3.7.2 一意制約
有効期間サポートを伴うバージョン対応表に一意制約が存在する場合は、制約の適用時に各行の有効期間が考慮されます。たとえば、EMPLOYEES表に一意制約を持つEMPLOYEE_ID列があるとします。挿入または更新操作の結果、新規のEMPLOYEE_ID値が既存のEMPLOYEE_ID値と同じになるとします。この場合、既存の行と挿入される行のWM_VALID値がオーバーラップしていると、操作は失敗します。(つまり、新規従業員と既存の従業員のIDが同じ番号であり、これらの従業員の行が特定時点で有効である場合、操作が失敗します。ただし、2人の従業員の有効期間がオーバーラップしていなければ、操作は成功します。)
親トピック: 有効期間サポートのための制約管理