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