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