SQLLab
PostgreSQLСредний

RETURNING

Возвращает строки после INSERT, UPDATE или DELETE без дополнительного SELECT.

Синтаксис
INSERT INTO table (...) VALUES (...) RETURNING id;
UPDATE table SET ... WHERE ... RETURNING *;
DELETE FROM table WHERE ... RETURNING id;

Объяснение

RETURNING позволяет получить данные изменённых строк в одном запросе вместо двух (изменение + SELECT). Особенно полезно для получения auto-generated id после INSERT.

Пример

-- Получить id после вставки
INSERT INTO orders (user_id, total)
VALUES (1, 999)
RETURNING id, created_at;

-- Обновить и получить обновлённые строки
UPDATE users SET last_seen = NOW()
WHERE id = ANY($1)
RETURNING id, last_seen;