Может кто-нибудь скажет мне: как долго будут храниться данные в глобальной временной таблице?
Продолжительность данных в глобальной временной таблице?
Ответ 1
Они могут быть основаны на SESSION (данные сохраняют фиксацию, но не отключают/повторно соединяют). Они также могут быть основаны на транзакции (данные исчезают после фиксации).
Это создает основанную на транзакции временную таблицу:
create global temporary table temp_table_transaction on commit delete rows ...
Это создает временную таблицу на основе сеанса:
create global temporary table temp_table_transaction on commit preserve rows ...
Ответ 2
Когда вы создаете временную таблицу у вас две опции для сохранения данных:
-
ON COMMIT DELETE ROWS
(по умолчанию) и -
ON COMMIT PRESERVE ROWS
Если вы не укажете предложение о сохранении или не укажете ON COMMIT DELETE ROWS
, данные в таблице будут специфичны для транзакции (они будут удалены при фиксации или откате).
Если вы укажете ON COMMIT PRESERVE ROWS
, данные останутся до конца вашего сеанса.
Ответ 3
Если таблица была создана с "on commit keep rows", данные будут оставаться до конца текущего сеанса. Если он был создан с помощью "on commit delete rows", он останется до следующего фиксации или отката.