Postgresql 中文操作指南

DISCARD

DISCARD — 丢弃会话状态

Synopsis

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

Description

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

Parameters

  • PLANS

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

  • SEQUENCES

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

  • TEMPORARY or TEMP

    • 丢弃当前会话中创建的所有临时表。

  • ALL

    • 释放与当前会话关联的所有临时资源,并将会话重置为其初始状态。目前,这与执行以下一系列语句的效果相同:

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 无法在事务块内执行。

Compatibility

DISCARD 是 PostgreSQL 扩展。