DISCARD#

DISCARD

DISCARD

DISCARD — отказаться от состояния сессии

Синтаксис

DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }

Описание

DISCARD освобождает внутренние ресурсы, связанные с сессией базы данных. Эта команда полезна для частичного или полного сброса состояния сессии. Есть несколько подкоманд для освобождения различных типов ресурсов; вариант DISCARD ALL включает в себя все остальные и также сбрасывает дополнительное состояние.

Параметры

PLANS

Освобождает все кешированные планы запросов, принуждая повторное планирование произойти в следующий раз, когда будет использован связанный подготовленный оператор.

SEQUENCES

Сбрасывает все кешированные состояния, связанные с последовательностями, включая информацию о функциях currval()/lastval() и любые предварительно выделенные значения последовательностей, которые еще не были возвращены функцией nextval(). (См. CREATE SEQUENCE для описания предварительно выделенных значений последовательностей).

TEMPORARY or 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 - это расширение Tantor SE.