You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询PostgreSQL中SET后接SET LOCAL的特殊场景执行逻辑

PostgreSQL 同一事务中 SET 与 SET LOCAL 的特殊行为解析

在单个事务里先后执行SET和SET LOCAL时,事务执行过程中会使用SET LOCAL设置的参数值;等事务提交完成后,SET设置的会话级参数值就会正式生效。

PostgreSQL官方文档对此的说明如下:

SET LOCAL的作用仅持续到当前事务结束,无论事务是否提交。一种特殊情况是在单个事务中先执行SET再执行SET LOCAL:在事务结束前会使用SET LOCAL设置的值,但事务提交后,SET设置的值将生效。

可以用一段SQL示例直观理解这个逻辑:

-- 启动事务
BEGIN;
-- 设置会话级参数(提交后生效)
SET work_mem = '64MB';
-- 设置事务级临时参数(当前事务内生效)
SET LOCAL work_mem = '128MB';

-- 此时查询参数,返回的是128MB,用的是SET LOCAL的值
SHOW work_mem;

-- 提交事务
COMMIT;

-- 再次查询,返回64MB,SET的会话级值开始生效
SHOW work_mem;

内容的提问来源于stack exchange,提问作者Kingpin2k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:02:37