Skip to content
Advertisement

Upsert (merge) for updating record if it exists and inserting otherwise

I am trying to write a DB2 query that allows me to either update a record if it already exists but if it does not exist it should be inserted. I wrote the following query that should accomplish this:

This query should attempt to check if a record already exists for the selection criteria. Updating a record seems to be working fine but I am not able to get the “WHEN NOT MATCHED” part to work and inserting a new record. Anyone able to provide some assistance?

The table is used to save the activation date of a certain software package. PACKAGE is the reference to the package table containing the name of the package (eg. “M2108”). CALENDAR_ID refers to a system where the software package will be activated. The actual date is stored in ACT_DATE.

Did not manage to get the DDL into SQLFiddle so I have to provide it here:

Advertisement

Answer

If your goal is to set ACT_DATE to 31.12.2021 if a row is found with PACKAGE = M2108 and CALENDAR_ID = 13 and if no row is found with these values then insert it, then this could be the answer

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement