SET
更改Greenplum数据库配置参数的值。
概要
SET [SESSION | LOCAL] configuration_parameter { TO | =} value | 'value' | DEFAULT}
SET [SESSION | LOCAL] TIME ZONE { timezone | LOCAL | DEFAULT}
描述
SET
命令更改服务器配置参数。
任何分类为session参数的配置参数都可以使用SET
即时更改。
SET
仅影响当前会话使用的值。
如果在稍后中止的事务中发出SET
或SET SESSION
,则回滚该事务时SET
命令的效果会消失。
一旦提交了事务,效果将一直持续到会话结束,除非被另一个SET
覆盖。
SET LOCAL
的影响仅持续到当前事务结束为止,无论是否提交。
特殊情况是在单个事务中SET LOCAL
紧随SET
其后:
SET LOCAL
值将一直显示到事务结束为止,但是此后(如果提交了事务)SET
值将生效。
如果在包含针对同一配置参数的SET
选项的函数中使用SET LOCAL
(请参见[CREATE FUNCTION](CREATE_FUNCTION.html#topic1)
),
则SET LOCAL
命令的效果在函数退出时消失;
无论如何,将恢复调用该函数时有效的值。
这允许将SET LOCAL
用于函数中参数的动态或重复更改,
同时保留使用SET
选项保存和恢复调用者值的便利。
请注意,常规的SET
命令会覆盖周围函数的SET
选项。
除非回滚,否则其影响持续存在。
如果在事务中使用DECLARE
命令创建游标,
则只有在使用CLOSE
命令关闭游标后才能在事务中使用SET
命令。
有关服务器参数的信息,请参阅服务器配置参数。
参数
SESSION 指定该命令对当前会话生效。这是默认值。
LOCAL
指定该命令仅对当前事务生效。
在COMMIT
或ROLLBACK
之后,会话级设置将再次生效。
请注意,如果SET LOCAL
在事务外部执行,则似乎无效。
configuration_parameter
Greenplum数据库配置参数的名称。
使用SET
只能更改分类为session的参数。
有关详细信息,请参见服务器配置参数。
value
参数的新值。
可以将值指定为字符串常量,标识符,数字或以逗号分隔的列表。
DEFAULT
可用于指定将参数重置为其默认值。
如果指定内存大小或时间单位,则将值用单引号引起来。
TIME ZONE
SET TIME ZONE
值是SET timezone TO value
。
语法SET TIME ZONE
允许时区指定使用特殊语法。
以下是有效值的示例:
'PST8PDT'
'Europe/Rome'
-7
(UTC以西7小时时区)
INTERVAL '-08:00' HOUR TO MINUTE
(UTC以西8小时时区)。
LOCAL
DEFAULT
将时区设置为您的本地时区(即服务器的默认timezone)。
有关Greenplum数据库中时区的更多信息,请参见PostgreSQL文档的时区部。
示例
设置schema搜索路径:
SET search_path TO my_schema, public;
将每个查询的segment主机内存增加到200 MB:
SET statement_mem TO '200MB';
把日期风格设置为传统POSTGRES的"日在月之前"的输入习惯:
SET datestyle TO postgres, dmy;
设置加利福尼亚州圣马特奥市的时区(太平洋时间):
SET TIME ZONE 'PST8PDT';
设置意大利的时区:
SET TIME ZONE 'Europe/Rome';
兼容性
SET TIME ZONE
扩展了SQL标准中定义的语法。
该标准仅允许数字时区偏移,而Greenplum数据库允许更灵活的时区规范。
SET
的所有其他功能都是Greenplum数据库扩展。
另见
[RESET](RESET.html#topic1)
, [SHOW](SHOW.html#topic1)
Parent topic: SQL Command Reference