DISCARD — 丢弃会话状态
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扩展。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。