PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

DISCARD

DISCARD — 丢弃会话状态

Synopsis

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

描述

DISCARD 释放与一个数据库会话相关联的内部资源。该命令对于部分或完全重置会话的状态很有用。有几个子命令可以释放不同类型的资源;DISCARD ALL 变体涵盖了其他所有变体,并且还会重置额外的状态。

参数

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;

注记

DISCARD ALL 不能在一个事务块内执行。

兼容性

DISCARD 是 PostgreSQL 的扩展。