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.