В СУБД PostgreSQL включена реализация UPSERT
В дерево исходных текстов СУБД PostgreSQL приняты изменения, добавляющие функциональность «UPSERT», которая реализована через новое выражение «ON CONFLICT DO NOTHING/UPDATE» в операторе «INSERT». Новая возможность позволяет обработать ситуацию невозможности добавления данных через «INSERT», например, из-за нарушения условий уникальности или недопустимости значения одного из полей, и вместо вывода ошибки игнорировать выполнение оператора или изменить связанные с ключевым полем данные (т.е. если запись уже существует, вместо INSERT выполнить UPDATE).
© OpenNet