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 ALL
является расширением QHB.