Отличие временной таблицы от
таблицы регулярной
Демонстрация отличия
временной таблицы, от таблицы регулярной.
Создаем
две таблицы
Временную
CREATE GLOBAL TEMPORARY TABLE scott.tmp_t
(
ID NUMBER(32)
) ON COMMIT PRESERVE ROWS;
Регулярную
CREATE TABLE scott.reg_t
(
ID NUMBER(32)
);
-- Не будем нагружать скрипты
излишним синтаксисом
Добавляем
данные
INSERT INTO scott.tmp_t(ID) VALUES (1);
INSERT INTO scott.tmp_t(ID) VALUES (2);
INSERT INTO scott.tmp_t(ID) VALUES (3);
INSERT INTO scott.reg_t(ID) VALUES (1);
INSERT INTO scott.reg_t(ID) VALUES (2);
INSERT INTO scott.reg_t(ID) VALUES (3);
Выполняем запрос к временной
таблице
SELECT * FROM scott.tmp_t;
Результат
---
1
2
3
к регулярной таблице
SELECT * FROM scott.reg_t;
Результат
---
1
2
3
Выполняем команду COMMIT и открываем новую сессию, после чего вновь
выполняем запросы
Выполняем запрос к временной
таблице
SELECT * FROM scott.tmp_t;
Результат
---
К регулярной таблице
SELECT * FROM scott.reg_t
Результат
---
1
2
3
Итак, данные во
временной таблице сохраняются только в текущей сессии или транзакции в
зависимости от выражения ON COMMIT в скрипте создания таблицы.
|