Как работает RETURNING в PostgreSQL?

Junior
679 просмотров
AFK Offer AI

RETURNING — конструкция PostgreSQL, которая позволяет получить данные из строк, которые были затронуты INSERT, UPDATE или DELETE. Вместо двух запросов (вставить + прочитать) делаешь один.

INSERT INTO users (email, name) VALUES ($1, $2)
RETURNING id, created_at;

DELETE FROM sessions WHERE expired_at < NOW() RETURNING user_id;

Особенно удобно для получения сгенерированных значений: ID, дефолтных значений, таймстемпов. Работает и с UPSERT — можно узнать, что именно произошло: вставка или обновление. В Go с pgx просто используешь QueryRow вместо Exec и сканируешь результат.

Следующий вопрос

Как интерпретировать результаты benchmark?