Documentation PostgreSQL 14.22 » Référence » Commandes SQL » DISCARD

Précédent | Niveau supérieur | Suivant
DELETE | Sommaire | DO

## DISCARD

DISCARD — Annuler l'état de la session

## Synopsis

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

## Description

`DISCARD` libère les ressources internes associées avec une session de la base de données. Ces ressources sont normalement libérées à la fin de la session. Cette commande est intéressante pour réinitialiser l'état de la session partiellement ou complètement. Il existe plusieurs sous-commandes pour relâcher différents types de ressources. La variante `DISCARD ALL` comprend toutes les autres, et réinitialise aussi un état supplémentaire.

## Paramètres

`PLANS`

  Supprime tous les plans de requête en cache, forçant une nouvelle planification la prochaine fois que la requête préparée est utilisée.

`SEQUENCES`

  Supprime du cache l'état des séquences, ceci incluant les informations `currval()`/`lastval()` ainsi que toutes les valeurs préallouées des séquences, qui n'ont pas encore été renvoyées par `nextval()`. (Voir CREATE SEQUENCE pour une description des valeurs préallouées des séquences.)

`TEMPORARY` or `TEMP`

  Supprime toutes les tables temporaires créées dans la session actuelle.

`ALL`

  Libère les ressources temporaires associées à cette session et réinitialise une session à son état d'origine. Actuellement, ceci a le même effet que la séquence d'instructions suivantes :

      CLOSE ALL;
      SET SESSION AUTHORIZATION DEFAULT;
      RESET ALL;
      DEALLOCATE ALL;
      UNLISTEN *;
      SELECT pg_advisory_unlock_all();
      DISCARD PLANS;
      DISCARD TEMP;
      DISCARD SEQUENCES;

## Notes

`DISCARD ALL` ne peut pas être utilisé dans un bloc de transaction.

## Compatibilité

`DISCARD` est une extension PostgreSQL.