Manage SCD 2 table using the INSERT --- ON CONFLICT

Поиск
Список
Период
Сортировка
От Johann Kerdal
Тема Manage SCD 2 table using the INSERT --- ON CONFLICT
Дата
Msg-id CAGoFJz5QLM3P0w3wtLuhLvBCjScCh6J5j-rP1Dc1ddgBN1gepA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Manage SCD 2 table using the INSERT --- ON CONFLICT  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-general
Hello,

I am trying to use the INSERT ON CONFLICT syntax to build an SCD 2 table loader.

here are the behaviors I need to achieve:
SCD 2 table: TAB_OUT
new candidate records: TAB_IN

The table TAB_IN contains the new candidate records to be submitted to TAB_OUT.
Case 1: The record presented by TAB_IN is already present in TAB_OUT and the fields were not modified
   -> DO NOTHING

Case 2: The record presented by TAB_IN is not present in TAB_OUT
   -> INSERT NEW RECORD (OK)

Case 3: The record presented by TAB_IN is already presente in TAB_OUT and the fields were modified
  -> CLOSE existing record in TAB_OUT(OK)
  -> INSERT new RECORD (KO)

I can't find a way to retrieve the list of records that were updated ON CONFLICT. I have tried the RETURNING but, it is retrieving the list of records processed either in the INSERT or the UPDATE.

Am I missing something or it is not possible with this syntax?

Thanks in advance

Johann


В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: four template0 databases after vacuum
Следующее
От: Albe Laurenz
Дата:
Сообщение: Re: PosgreSQL Security Architecture