Gymterview
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.