[ { CURRENT | NONSEQUENCED } VALIDTIME | [ SEQUENCED ] VALIDTIME [ period_expression ] | NONTEMPORAL ] update_statement [;]
- CURRENT VALIDTIME
- ターゲット テーブルが有効時間をサポートする場合、更新がvalid-time次元でcurrentになることを指定します。CURRENT UPDATEは現在行にのみ作用します。TEMPORAL_TIMESTAMPまたはTEMPORAL_DATEと重ならないvalid-time期間を含む将来行は更新されません。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この更新はcurrent更新にはなりません。CURRENT VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
セッション テンポラル修飾子が設定されていないときに、UPDATE文でテンポラル修飾子が省略されると、デフォルトの修飾子がCURRENT VALIDTIMEになります。
CURRENT DMLを変更すると、並行トランザクションにおける逐次性の問題が発生することがあります。これらの問題を避ける方法の詳細は、CurrentテンポラルDMLに付随する潜在的な同時並行性の問題を参照してください。 - VALIDTIME and SEQUENCED VALIDTIME
- ターゲット テーブルが有効時間をサポートする場合、この更新がvalid-time次元でsequencedになることを指定します。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この更新はsequenced更新にはなりません。VALIDTIME修飾子またはSEQUENCED VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
有効時間をサポートするターゲット テーブルに対するsequenced更新では、valid-time列値とperiod_expressionの共通部分がvalid-time値に設定されます。
- period_expression
DML文の適用期間を指定します。
適用期間は、列を参照しないPERIOD定数式である必要がありますが、パラメータ化された値とTEMPORAL_DATEまたはTEMPORAL_TIMESTAMPビルトイン関数を参照できます。
適用期間は、DML文のテンポラル修飾子に関係なく、常に時間次元でnonsequencedである自己格納型の非相関スカラー サブクエリーにすることもできます。
period_expressionが指定されている場合、valid-time列は、問合わせ内の任意の場所で指定したり参照したりすることはできません。valid-time列が派生期間列の場合、問合わせ内の任意の場所でコンポーネント列を指定したり参照したりすることはできません。period_expressionを省略すると、valid-time列がPERIOD(DATE)の場合には、適用期間のデフォルトにPERIOD'(0001-01-01, UNTIL_CHANGED)'が設定されます。また、valid-time列がPERIOD(TIMESTAMP( n ) WITH TIME ZONE)の場合には、'(0001-01-01 00:00:00.000000+00:00, UNTIL_CHANGED)'に設定されます。ここで、nは精度であり、WITH TIME ZONEは任意です。
- NONSEQUENCED VALIDTIME
- ターゲット テーブルが有効時間をサポートする場合、この更新がvalid-time次元でnonsequencedになることを指定します。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この更新はnonsequenced更新にはなりません。NONSEQUENCED VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
- NONTEMPORAL
- この更新がvalid-time次元ではnonsequencedになり、transaction-time次元では非テンポラルになることを指定します。
非テンポラル更新では、transaction-time列が非テンポラル列と同様に扱われます。
テーブルはトランザクション時間をサポートしている必要があります。
- update_statement
- UPDATE文の従来型の構文。