关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
更改运行时数据库配置参数的值。
SET [ SESSION | LOCAL ] <configuration_parameter> { TO | = } { <value> | '<value>' | DEFAULT }
SET [SESSION | LOCAL] TIME ZONE { <value> | '<value>' | LOCAL | DEFAULT }
SET 命令用于修改服务器配置参数。任何被归类为会话参数的配置参数均可通过 SET 命令实时修改。(部分参数需具备超级用户权限才能修改,另一些参数则在服务器或会话启动后无法更改。)SET 命令仅影响当前会话使用的参数值。
若在后续被取消的事务中执行了SET或SET SESSION命令,当事务回滚时,SET命令的效果将消失。一旦外围事务提交,其效果将持续至会话结束,除非被另一个SET命令覆盖。
SET LOCAL 的效果仅持续到当前事务结束,无论事务是否提交。特殊情况是单个事务内先执行 SET 再执行 SET LOCAL:SET LOCAL 的值将持续到事务结束,但之后(若事务提交)SET 的值将生效。
SET 或 SET LOCAL 的效果也会因回滚到早于该命令的保存点而被取消。
若在包含相同配置参数 SET 选项的函数中使用 SET LOCAL(参见 CREATE FUNCTION),则 SET LOCAL 命令的效果在函数退出时消失;无论如何都会恢复函数调用时生效的值。这使得 SET LOCAL 能在函数内部实现参数的动态或重复修改,同时保留使用 SET 选项保存和恢复调用者参数值的便利性。需注意常规 SET 命令会覆盖任何外围函数的 SET 选项;其效果将持续生效,除非被回滚。
有关服务器参数的信息,请参阅服务器配置参数。
SESSION
LOCAL
configuration_parameter
value
SCHEMA
SET SCHEMA '<value>' 是 SET <search_path> TO <value> 的别名。使用此语法时只能指定一个模式。NAMES
SET NAMES <value> 是 SET client_encoding TO <value> 的别名。SEED
random())的内部种子。允许的值为-1到1之间的浮点数(包含边界值)。您也可以通过调用 setseed() 函数来设置种子:
SELECT setseed(value);
TIME ZONE
SET TIME ZONE <value> 是 SET timezone TO <value> 的别名。SET TIME ZONE 语法允许使用特殊语法指定时区。有效值示例如下:
'PST8PDT'
'Europe/Rome'
-7 (time zone 7 hours west from UTC)
INTERVAL '-08:00' HOUR TO MINUTE (time zone 8 hours west from UTC).
LOCAL
DEFAULT 将时区设置为您的本地时区(即服务器的默认时区值)。 有关数据库中时区的更多信息,请参阅 PostgreSQL 文档中的时区部分。
设置模式搜索路径:
SET search_path TO my_schema, public;
将每个查询的分段主机内存增加至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 标准中定义的语法。标准仅允许使用数字时区偏移量,而数据库允许更灵活的时区指定方式。所有其他 SET 功能均为数据库扩展。