VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SET TRANSACTION

功能描述

为事务设置特性。事务特性包括事务隔离级别、事务访问模式(读/写或者只读)。可以设置当前事务的特性(LOCAL),也可以设置会话的默认事务特性(SESSION),也可以设置当前数据库的全局会话的事务特性(GLOBAL)。

本文档只介绍SET TRANSACTION语句兼容MySQL的特性,原Vastbase的SET TRANSACTION语法未做删除和修改,详见SET TRANSACTION

Vastbase在MySQL兼容模式下,支持SET TRANSACTION如下特性用法:

  • 支持SET [SESSION | GLOBAL] TRANSACTION语句。

注意事项

该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。

语法格式

SET  [ LOCAL | SESSION | GLOBAL ] TRANSACTION...

本文档仅列出部分语法,更多SET TRANSACTION语法请参考SET TRANSACTION

参数说明

  • LOCAL

    声明该命令只在当前事务中有效。

  • SESSION

    声明这个命令只对当前会话起作用。

    SET SESSION TRANSACTION语句需要在B兼容模式下,设置GUC参数[b_format_behavior_compat_options]()为set_session_transaction后生效。

    取值范围:字符串,要符合标识符的命名规范。

  • GLOBAL

    声明这个命令对当前数据库的全局会话生效。

    作用范围:在集中式的B兼容模式下生效。对后续连接的会话生效。

示例

示例1: 设置当前会话的事务隔离级别、读写模式。

1、修改配置文件postgresql.conf。

b_format_behavior_compat_options='set_session_transaction'

2、设置当前会话的事务隔离级别、读写模式。

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET SESSION TRANSACTION READ ONLY;

示例2: 设置当前数据库全局会话的事务隔离级别。

SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET GLOBAL TRANSACTION READ ONLY;