GaussDB-ALTER SESSION
功能描述
ALTER SESSION命令用于定义或修改对当前会话有影响的条件或参数。修改后的会话参数会一直保持,直到断开当前会话。
注意事项
- 如果执行SET TRANSACTION之前没有执行START TRANSACTION,则事务立即结束,命令无法显示效果。
- 可以用START TRANSACTION里面声明所需要的transaction_mode(s)的方法来避免使用SET TRANSACTION。具体请参见:START TRANSACTION。
语法格式
-
设置会话的事务参数。
| ``` ALTER SESSION SET [ SESSION CHARACTERISTICS AS ] TRANSACTION { ISOLATION LEVEL { READ COMMITTED } | { READ ONLY | READ WRITE } } [, ...] ;
| -------------------------------------------------------------------------------------------------------------------------------------------------------- |  -
设置会话的其他运行时参数。
| ``` ALTER SESSION SET {{config_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT }} | CURRENT_SCHEMA [ TO | = ] { schema | DEFAULT } | TIME ZONE time_zone | SCHEMA 'schema' | NAMES encoding_name | ROLE role_name PASSWORD 'password' | SESSION AUTHORIZATION { role_name PASSWORD 'password' | DEFAULT } | XML OPTION { DOCUMENT | CONTENT } } ;
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
参数说明
-
config_parameter
可设置的运行时参数的名称。可用的运行时参数可以使用SHOW ALL命令查看。
-
value
config_parameter的新值。可以声明为字符串常量、标识符、数字,或者逗号分隔的列表。DEFAULT用于把这些参数设置为它们的缺省值。
- DEFAULT
- OFF
- RESET
- 用户指定的值:需要满足修改参数的取值限制。
-
FROM CURRENT
取当前会话中的值设置为configuration_parameter的值。
-
-
CURRENT_SCHEMA
schema
CURRENT_SCHEMA用于指定当前的模式。
取值范围:已存在模式名称。如果模式名不存在,会导致CURRENT_SCHEMA值为空。
-
TIME ZONE timezone
用于指定当前会话的本地时区。
取值范围:有效的本地时区。该选项对应的运行时参数名称为TimeZone,DEFAULT缺省值为PRC。
-
SCHEMA schema
同CURRENT_SCHEMA。此处的schema是个字符串。
-
NAMES encoding_name
用于设置客户端的字符编码。等价于set client_encoding to encoding_name。
取值范围:有效的字符编码。该选项对应的运行时参数名称为client_encoding,默认编码为UTF8。
-
role_name
取值范围:字符串。要符合标识符命名规范。
-
password
角色的密码。要求符合密码的命名规则。
-
SESSION AUTHORIZATION
当前会话的用户表示符。
-
XML OPTION { DOCUMENT | CONTENT }
用于设置XML的解析方式。
取值范围:CONTENT(缺省)、DOCUMENT。
示例
-
设置会话的事务参数。
--开启事务,设置事务级别。 gaussdb=# START TRANSACTION; gaussdb=# ALTER SESSION SET TRANSACTION READ ONLY; gaussdb=# END; -
设置会话的其他运行时参数。
| ``` --创建模式ds。 gaussdb=# CREATE SCHEMA ds; --设置模式搜索路径。 gaussdb=# SET SEARCH_PATH TO ds, public; --设置日期时间风格为传统的POSTGRES风格(日在月前)。 gaussdb=# SET DATESTYLE TO postgres, dmy; --设置当前会话的字符编码为UTF8。 gaussdb=# ALTER SESSION SET NAMES 'UTF8'; --设置时区为加州伯克利。 gaussdb=# SET TIME ZONE 'PST8PDT'; --设置时区为意大利。 gaussdb=# SET TIME ZONE 'Europe/Rome'; --设置当前模式。 gaussdb=# ALTER SESSION SET CURRENT_SCHEMA TO tpcds; --设置XML OPTION为DOCUMENT。 gaussdb=# ALTER SESSION SET XML OPTION DOCUMENT; --创建角色joe,并设置会话的角色为joe。 gaussdb=# CREATE ROLE joe WITH PASSWORD ''; gaussdb=# ALTER SESSION SET SESSION AUTHORIZATION joe PASSWORD ''; --切换到默认用户。 gaussdb=> ALTER SESSION SET SESSION AUTHORIZATION default; --删除ds模式。 gaussdb=# DROP SCHEMA ds; --删除joe。 gaussdb=# DROP ROLE joe;
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
相关链接
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…