The UPDATE portion of upsert follows the semantics described for the temporal form of UPDATE. The INSERT portion of upsert follows the semantics described for the temporal form of INSERT. All restrictions that apply to the conventional form of upsert also apply to the temporal form of upsert, with the exception of the relaxed restrictions documented in the following topics.
If the upsert does not require any temporal operations, such as opening or closing a row, use a NONSEQUENCED VALIDTIME UPSERT. The SET clause can reference the valid-time column to set the valid-time value.
All check, primary key, and temporal unique (current, sequenced, nonsequenced) constraints defined on the table are checked only on rows that are open in transaction time.
DML operations on tables defined with NORMALIZE produce a normalized set of modified rows. Some unmodified rows may be deleted from the target table as a result of the normalization.
When the target table is a normalized temporal table with transaction time, rows that are deleted as a result of the normalization are closed in transaction time.