SQL | Объявить локальную временную таблицу

Опубликовано: 10 Августа, 2021

Оператор Declare Local Temporary Table, используемый для создания временной таблицы. Во временной таблице строки в ней видны только тому соединению, которое создало таблицу и вставило строки.

Синтаксис -

 ОБЪЯВИТЬ ЛОКАЛЬНУЮ ВРЕМЕННУЮ ТАБЛИЦУ имя-таблицы
(имя-столбца [значение-столбца]);

Пример :

 ОБЪЯВИТЬ МЕСТНУЮ ВРЕМЕННУЮ ТАБЛИЦУ TempGeek (число INT);

ВСТАВИТЬ В Гиков 
ЦЕННОСТИ (1), (2), (3), (4);

Выбирать * 
от TempGeek;

номер
1
2
3
4

После создания локальной временной таблицы вы не сможете создать другую временную таблицу с этим именем, пока существует временная таблица.

Пример -
Вы можете создать локальную временную таблицу, введя:

объявить локальную временную таблицу Geektable

Если вы затем попытаетесь выбрать «Geektable» или снова объявить Geektable, вы получите сообщение об ошибке, указывающее, что Geektable уже существует.

Когда вы объявляете временную таблицу, исключите спецификацию владельца.

Если вы укажете идентичный owner.table в дополнение к оператору DECLARE LOCAL TEMPORARY TABLE в том же сеансе, сообщается о синтаксической ошибке.

Пример -

ОБЪЯВЛЕНИЕ ЛОКАЛЬНОЙ ВРЕМЕННОЙ ТАБЛИЦЫ user1.Gfgt (col1 int);
ОБЪЯВЛЕНИЕ ЛОКАЛЬНОЙ ВРЕМЕННОЙ ТАБЛИЦЫ user.Gfgt (col1 int);

Сообщается об ошибке «Элемент Gfgt уже существует»:

Однако вы можете создать временную таблицу с таким же именем, как существующая базовая таблица или глобальная временная таблица, однако сначала будут использоваться локальные временные таблицы.

Пример -
Рассмотрим эту последовательность:

СОЗДАТЬ ТАБЛИЦУ Компьютерщики (число int);
ВСТАВИТЬ ЗНАЧЕНИЯ для компьютерных фанатов (9), (8);

на одной
9
8

ОБЪЯВЛЕНИЕ ЛОКАЛЬНОЙ ВРЕМЕННОЙ ТАБЛИЦЫ Компьютерщики (num int);

ВСТАВИТЬ ЗНАЧЕНИЯ для компьютерных фанатов (6), (7);

число
6
7

 ВЫБРАТЬ * 
ОТ Вундеркиндов;

Выход :
Возвращенный результат

на одной
6
7

Любая ссылка на Geeks относится к локальной временной таблице Geeks, пока локальная временная таблица не будет удалена соединением.

Операторы ALTER TABLE и DROP INDEX нельзя использовать для локальных временных таблиц.