SQL COMMAND · 会话与参数
DISCARD
丢弃会话状态
discard session state
DISCARD会话与参数引入 8.3现存至 20 devel1 次语法变更
- 动词
DISCARD- 对象
—- 分组
- 会话与参数
- 引入版本
- 8.3
- 状态
- 现存
- 语法变更次数
- 1
- 手册小节数
- 4
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
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 扩展。
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 12← 11正文更新
正文更新PostgreSQL 9.4← 9.3语法变化
+ DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }正文更新PostgreSQL 8.3← 8.2新增此命令