更新时间:2024-11-12 GMT+08:00
分享

SET

功能描述

用于修改运行时配置参数。

注意事项

大多数运行时参数都可以用SET在运行时设置,但有些则在服务运行过程中或会话开始之后不能修改。

语法格式

  • 设置所处的时区。
    1
    SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT };
    

  • 设置所属的模式。
    1
    2
    3
    SET [ SESSION | LOCAL ] 
        {CURRENT_SCHEMA { TO | = } { schema | DEFAULT }
        | SCHEMA 'schema'};
    

  • 设置客户端编码集。
    1
    SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
    

  • 设置XML的解析方式。
    1
    SET [ SESSION | LOCAL ] XML OPTION { DOCUMENT | CONTENT };
    

  • 设置其他运行时参数。
    1
    2
    3
    SET [ SESSION | LOCAL ]
        {config_parameter { { TO | = } { value | DEFAULT } 
                            | FROM CURRENT }};
    

参数说明

  • SESSION

    声明的参数只对当前会话起作用。如果SESSION和LOCAL都没出现,则SESSION为缺省值。

    如果在事务中执行了此命令,命令的产生影响将在事务回滚之后消失。如果该事务已提交,影响将持续到会话的结束,除非被另外一个SET命令重置参数。

  • LOCAL

    声明的参数只在当前事务中有效。在COMMIT或ROLLBACK之后,会话级别的设置将再次生效。

    不论事务是否提交,此命令的影响只持续到当前事务结束。一个特例是:在一个事务里面,既有SET命令,又有SET LOCAL命令,且SET LOCAL在SET后面,则在事务结束之前,SET LOCAL命令会起作用,但事务提交之后,则是SET命令会生效。

  • TIME ZONE timezone

    用于指定当前会话的本地时区。

    取值范围:有效的本地时区。该选项对应的运行时参数名称为TimeZone,DEFAULT缺省值为PRC。

  • CURRENT_SCHEMA schema

    CURRENT_SCHEMA用于指定当前的模式。

    取值范围:已存在模式名称。

  • SCHEMA schema

    同CURRENT_SCHEMA。此处的schema是个字符串。

    例如:set schema 'public';

  • NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
    • 在sql_compatibility = 'MYSQL'模式下,并设置b_format_version='5.7'、b_format_dev_version='s2'时,支持指定COLLATE子句。

      描述:用于设置客户端字符编码,常量字符串的字符集、字符序,及返回结果的字符集。

      等价为:

      SET client_encoding = charset_name; 
      SET character_set_connection = charset_name;
      SET collation_connection = collation_name; 
      SET character_set_results = charset_name;

      取值范围:MYSQL兼容模式下支持的字符集、字符序。暂不支持指定charset_name与数据库字符集不同。

    • 其他场景下不支持指定COLLATE子句。

      描述:用于设置客户端的字符编码。

      等价为:

      SET client_encoding TO charset_name;

      取值范围:有效的字符编码。默认编码为UTF8。

  • XML OPTION option

    用于设置XML的解析方式。

    取值范围:CONTENT(缺省)、DOCUMENT

  • config_parameter

    可设置的运行时参数的名称。可用的运行时参数可以使用SHOW ALL命令查看。

    部分通过SHOW ALL查看的参数不能通过SET设置。如max_datanodes。

  • value

    config_parameter的新值。可以声明为字符串常量、标识符、数字,或者逗号分隔的列表。DEFAULT用于把这些参数设置为它们的缺省值。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
--设置所处的时区。
gaussdb=# SET TIME ZONE 'PST8PDT';

--设置模式搜索路径。    
gaussdb=# SET search_path TO tpcds, public;

--设置客户端编码集。
gaussdb=# SET client_encoding TO utf8;

--设置XML的解析方式。
gaussdb=# SET XML OPTION DOCUMENT;

--把日期时间风格设置为传统的 POSTGRES 风格(日在月前)。
gaussdb=# SET datestyle TO postgres;

相关链接

RESETSHOW

相关文档