При очистке данных важно понимать, какие строки были реально удалены. Оператор
RETURNING в PostgreSQL позволяет вернуть данные удалённых строк без дополнительного запроса.Создадим таблицу:
CREATE TABLE sessions (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
user_id BIGINT NOT NULL,
last_active TIMESTAMPTZ NOT NULL
);
Удалим неактивные сессии и сразу получим нужные поля:
DELETE FROM sessions
WHERE last_active < NOW() - INTERVAL '30 days'
RETURNING id, user_id;
Результат:
id | user_id
----+---------
12 | 3
18 | 7
25 | 3
🔥 Такой приём повышает прозрачность операций и упрощает аудит. Работает также с
INSERT и UPDATE, что делает SQL-операции атомарными.➡️ SQL Ready | #практика