DISCARD

DISCARD-丢弃会话状态

Synopsis

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

Description

DISCARD释放与数据库会话关联的内部资源。此命令对于部分或全部重置会话状态很有用。有几个子命令可以释放不同类型的资源。 DISCARD ALL变体包含所有其他变体,并且还重置其他状态。

Parameters

  • PLANS

    • 释放所有缓存的查询计划,并在下一次使用关联的 prepared 语句时强制进行重新计划。
  • SEQUENCES

    • 丢弃所有与缓存序列相关的状态,包括currval()/lastval()信息以及nextval()尚未返回的任何预分配序列值。 (有关预分配序列值的说明,请参见CREATE SEQUENCE。)
  • TEMPORARYTEMP

    • 删除在当前会话中创建的所有临时表。
  • ALL

    • 释放与当前会话关联的所有临时资源,并将会话重置为其初始状态。当前,这与执行以下语句序列具有相同的效果:
SET SESSION AUTHORIZATION DEFAULT;
RESET ALL;
DEALLOCATE ALL;
CLOSE ALL;
UNLISTEN *;
SELECT pg_advisory_unlock_all();
DISCARD PLANS;
DISCARD SEQUENCES;
DISCARD TEMP;

Notes

DISCARD ALL无法在事务块内执行。

Compatibility

DISCARD是 PostgreSQL 扩展。