Сценарии - Insert or update. Upsert 

Page / - Изменено Alexandr Fokin в 2024/06/01 12:59 

Insert or update. Upsert 
Изменено Alexandr Fokin
в 2024/06/01 12:59

Оглавление

 	insert on conflict	 	
If not exist	INSERT INTO table1
    (id)
SELECT 1
WHERE
   NOT EXISTS (
       SELECT 1 
       FROM table1
       WHERE id = 1
    )
ON CONFLICT DO NOTHING	Конструкция ON CONFLICT не защищает от обращения к генератору ключа (sequence). И это может привести к тому, что счетчик будет крутиться впустую.
Использование выборки с условием не убирает полностью ложные срабатывания (если они проходя одновременно), но после вставки записи, обращения к генератору прекратятся.
PostgreSQL Antipatterns: накручиваем себе проблемы
https://habr.com/ru/companies/tensor/articles/507688/

Postgres: INSERT if does not exist already
https://stackoverflow.com/questions/4069718/postgres-insert-if-does-not-exist-already	

Внутренние ссылки:
Дочерние страницы:
Обратные ссылки:
•	Insert or update. Upsert