junior
Что такое временная таблица и для чего она используется?
Временная таблица — объект базы данных, который существует только в рамках текущей сессии или транзакции и автоматически удаляется по её завершении. Временные таблицы создаются в специальной системной области (в PostgreSQL — схема pg_temp, в SQL Server — база tempdb) и не видны другим соединениям.
Виды временных таблиц
| Вид | Область видимости | Синтаксис (PostgreSQL) |
|---|---|---|
| Локальная | Текущая сессия | CREATE TEMP TABLE ... |
| Глобальная | Все сессии (SQL Server, Oracle) | CREATE GLOBAL TEMPORARY TABLE ... |
Когда используются
- Сохранение промежуточных результатов вызова хранимой процедуры
- Уменьшение числа строк при сложных соединениях — сначала отфильтровать данные во временную таблицу, затем присоединить
- Агрегирование данных из различных источников перед итоговой выборкой
- Замена курсоров и параметризованных представлений
- Разбиение сложного запроса на логические шаги для повышения читаемости
Пример
CREATE TEMP TABLE active_orders AS
SELECT * FROM orders WHERE status = 'active';
SELECT u.name, COUNT(ao.id)
FROM users u
JOIN active_orders ao ON ao.user_id = u.id
GROUP BY u.name;
На собеседовании: интервьюер хочет услышать, что временная таблица живёт в рамках сессии, автоматически удаляется, и привести хотя бы один практический сценарий использования. Частая ошибка — путать временные таблицы с CTE.