DISCARD
DISCARD - 丢弃会话状态
语法格式
DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }
说明
DISCARD释放与数据库会话关联的内部资源。此命令对部分或完全重置会话状态很有用。有几个子命令可以释放不同类型的资源;DISCARD ALL 变体包含所有其他变体,并且还重置其他状态。
参数说明
PLANS
释放所有已缓存的查询计划,强制在下一次使用相关预备语句时 重新做计划。
SEQUENCES
丢弃所有已缓存的序列相关的状态,包括 currval()/lastval()信息 以及任何还未被nextval()返回的预分配的 序列值(预分配序列值的描述请见 CREATE SEQUENCE);
TEMPORARY or TEMP
删除当前会话中创建的所有临时表。
ALL
释放与当前会话相关的所有临时资源并且把会话重置为初始状态。 当前这和执行以下语句序列的效果相同:
SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; CLOSE ALL; UNLISTEN *; SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD SEQUENCES; DISCARD TEMP;
注意事项
DISCARD ALL 无法在事务块内执行。