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
はPostgreSQLの拡張です。