DISCARD — descarta o estado da sessão
DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }
O comando DISCARD libera recursos internos
associados a uma sessão de banco de dados.
Este comando serve para redefinir parcial ou totalmente o estado
da sessão.
Existem vários subcomandos para liberar diferentes tipos de recursos;
a variante DISCARD ALL inclui todas as outras,
e também redefine a sessão para seu estado inicial.
PLANSLibera todos os planos de consulta em cache, forçando haver um replanejamento na próxima vez que a instrução preparada associada for usada.
SEQUENCES
Descarta todos os estados relacionados a sequências em
cache, incluindo informações de
currval()/lastval(),
e quaisquer valores de sequência pré-alocados que ainda não foram
retornados por nextval().
(Veja CREATE SEQUENCE para obter informações
sobre valores de sequência pré-alocados.)
TEMPORARY ou TEMPDescarta todas as tabelas temporárias criadas na sessão corrente.
ALLLibera todos os recursos temporários associados à sessão corrente, e redefine a sessão para seu estado inicial. No momento, isto tem o mesmo efeito que executar a seguinte sequência de instruções:
CLOSE ALL; SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; UNLISTEN *; SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD TEMP; DISCARD SEQUENCES;
O comando DISCARD ALL não pode ser executado
em um bloco de transação.
O comando DISCARD é uma extensão do
PostgreSQL.