↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / SQL 命令 / 会话与参数

SQL COMMAND · 会话与参数

DISCARD

丢弃会话状态

discard session state

DISCARD会话与参数引入 8.3现存至 20 devel1 次语法变更

动词
DISCARD
对象
—
引入版本
8.3
状态
现存
语法变更次数
1
手册小节数
4

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

DISCARD ALL PLANS SEQUENCES TEMPORARY TEMP

语法概要

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

PostgreSQL 18 手册 · 查看完整参考页

描述

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 扩展。

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 12← 11正文更新

    正文更新
  2. PostgreSQL 9.4← 9.3语法变化

    + DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }正文更新
  3. PostgreSQL 8.3← 8.2新增此命令

同组命令

命令动词对象版本变动最近变更
SESSIONS & SETTINGS会话与参数8 条↑
DISCARDDISCARD— 9.41 次
丢弃会话状态现存
LISTENLISTEN— 9.02 次
监听通知现存
NOTIFYNOTIFY— 9.02 次
发出一个通知现存
RESETRESET— 8.23 次
将一个运行时参数的值恢复为默认值现存
SETSET— 198 次
更改运行时参数现存
SHOWSHOW— 7.23 次
显示一个运行时参数的值现存
UNLISTENUNLISTEN— 9.02 次
停止监听通知现存
ALTER SYSTEMALTERSYSTEM 111 次
更改服务器配置参数现存