В первой бета-версии появилась новая конструкция —
ON CONFLICT DO SELECT.
INSERT INTO customer (
id, email, password
) VALUES (
'a20bf431-48fc-458fb240-6207676e5099',
'me@example.com',
'pwd'
)
ON CONFLICT (email) DO SELECT
RETURNING *;
Если такого
email ещё нет, запись будет создана и возвращена. Если уже есть, то PostgreSQL вернёт существующую строку, не изменяя её.Получается атомарный
get-or-create одним запросом: без дополнительного SELECT и фиктивного UPDATE. Особенно полезно при конкурентных запросах.И да, DB-клиент OpenIDE, конечно же, будет отлично поддерживать новый синтаксис PostgreSQL 19: от редактирования и выполнения запросов до работы с результатами.
⚡️ Незаметно присоединяйтесь ©