该语句用于开启事务。数据库事务(Database Transaction)是指作为单个逻辑工作单元执行的一系列操作。事务处理可以用来维护数据库的完整性,保证成批的SQL操作全部执行或全部不执行。

默认情况下,PolarDB-X以开启autocommit的模式运行,也就是每条SQL语句单独构成一个事务(出于性能考虑,跨分片的DML语句默认未开启分布式事务,仅对更新GSI、更新广播表、更新拆分键的DML语句默认开启分布式事务)。用户可以通过执行SET AUTOCOMMIT=0或者显式事务的方式手动开启多条语句组成的交互式事务。

显示事务是用户自定义或用户指定的事务。通过START TRANSACTION,或BEGIN(被作为START TRANSACTION的别名受到支持)语句显示开始,以COMMIT或ROLLBACK语句显示结束。

语法:

START TRANSACTION
  [transaction_characteristic [, transaction_characteristic] ...]

transaction_characteristic: {
    WITH CONSISTENT SNAPSHOT
  | ISOLATION LEVEL {REPEATABLE READ | READ COMMITTED}
  | READ WRITE
  | READ ONLY
}

BEGIN
COMMIT
ROLLBACK
SET autocommit = {0 | 1}
参数 说明
START TRANSACTION [READ ONLY | READ WRITE] 启动新的事务,随后执行的DML语句(即INSERT、UPDATE、DELETE等)直到事务提交时才会生效。READ ONLY子句标记事务以只读方式开启,事务内不允许执行修改操作。READ WRITE子句标记事务以读写方式开启,默认为这种模式。
START TRANSACTION WITH CONSISTENT SNAPSHOT 启动新的事务,如果没有显式指定隔离级别,则为事务设置隔离级别REPEATABLE READ。
START TRANSACTION ISOLATION LEVEL {REPEATABLE READ | READ COMMITTED} 启动新的事务,并为事务设置指定的隔离级别。
BEGIN BEGIN被作为START TRANSACTION的别名受到支持。
COMMIT 提交当前事务。
ROLLBACK 回滚当前事务。
SET autocommit = {0 | 1} 为当前会话(session)关闭/开启autocommit模式。