PostgreeSQL: INSERT or UPDATE в запросе

В Postgree очень удобно реализовывать механизм защиты от избыточной вставки одинаковых значений.

  1. Назначаем на колонки таблицы контроль уникальности
 CONSTRAINT control_un_key UNIQUE (dtfrom_utc)
        INCLUDE(tar_id,user_group),

2. Далее при вставке достаточно указать что то в духе:

INSERT INTO tars_list
                ( dtfrom_utc, tar_id, user_group)
         VALUES (:dtfrom_utc,:tar_id,:user_group) ON CONFLICT  DO NOTHING

Одно плохое НО. Проверка уникальности не будет работать, если в полях есть null