DISCARD
DISCARD — сбросить состояние сеанса
Синтаксис
DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }
Описание
Команда DISCARD
освобождает внутренние ресурсы, связанные с сеансом использования
базы данных. Эта команда полезна для частичного или полного сброса состояния
сеанса. Существует несколько подкоманд для освобождения различных типов
ресурсов; вариант DISCARD ALL
объединяет все остальные, а также сбрасывает
дополнительное состояние.
Параметры
PLANS
Освобождает все кэшированные планы запросов, заставляя сервер провести повторное планирование при следующем использовании связанного подготовленного оператора.
SEQUENCES
Сбрасывает все кэшированные состояния, связанные с последовательностями,
включая информацию currval()/lastval() и любые предварительно выделенные
значения последовательности, которые еще не были возвращены nextval().
(Описание предварительно выделенных значений последовательности см. на справочной
странице команды CREATE SEQUENCE
).
TEMPORARY или TEMP
Удаляет все временные таблицы, созданные в текущем сеансе.
ALL
Освобождает все временные ресурсы, связанные с текущим сеансом, и сбрасывает сеанс до исходного состояния. В настоящее время это действует так же, как выполнение следующей последовательности операторов:
CLOSE ALL;
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD TEMP;
DISCARD SEQUENCES;
Примечания
Команду DISCARD ALL
нельзя выполнить внутри блока транзакции.
Совместимость
Команда DISCARD
является расширением QHB.