Предложение ON CONFLICT в PostgreSQL позволяет задать действие, которое будет выполняться в случае нарушения ограничения уникальности или ограничения-исключения. 5
Некоторые особенности работы с этим предложением:
- Возможность выбора действия в случае конфликта. 1 Есть два варианта: DO NOTHING и DO UPDATE. 1
- DO NOTHING. 15 Указывает PostgreSQL не изменять конфликтующую запись. 1 Это действие не вносит изменений, но подавляет ошибку, которая обычно возникает при попытке вставить строку, нарушающую условие. 1
- DO UPDATE. 15 Позволяет изменить существующую строку, вызвавшую конфликт со строкой, предложенной для добавления. 5
- Атомарность. 35 Предложение рассматривает всю операцию как единое целое, обеспечивая либо полный успех, либо полный провал. 3 Если конфликт возникает во время выполнения, операция не завершится частично, а будет полностью отменена. 3
- Улучшение производительности. 3 С помощью ON CONFLICT можно достичь того же результата за один запрос, что сокращает общее время выполнения. 3
Предложение ON CONFLICT облегчает процесс поддержания и обновления данных в базе данных. 3