Перейти к основному содержимому

DISCARD

примечание

Эта страница переведена при помощи нейросети GigaChat.

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