DISCARDはデータベースセッションに関連した内部リソースを解放します。 このコマンドはセッションの状態を部分的あるいは完全にリセットするのに役に立ちます。 様々な種類のリソースを解放するためにいくつかのサブコマンドがあります。 DISCARD ALLは他のすべてを包含し、さらにまた追加の状態もリセットします。
キャッシュされた問い合わせ計画をすべて解放します。 これにより、関連するプリペアド文が次に使われたとき、強制的に計画がやり直されます。
キャッシュされたシーケンスに関連する状態をすべて破棄します。
これには、currval()
/lastval()
の情報、および事前に割り当てられたシーケンスの値で、まだnextval()
によって返されていないものを含みます。
(事前に割り当てられたシーケンスの値についてはCREATE SEQUENCEを参照してください。)
現在のセッションで作成された一時テーブルをすべて削除します。
現在のセッションに関連付いた一時的なリソースを解放し、セッションを初期状態に戻します。 現時点でこれは、以下に示す一連の文を実行することと同じ効果があります。
SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; CLOSE ALL; UNLISTEN *; SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD SEQUENCES; DISCARD TEMP;