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.