SET TRANSACTION

    语句用于在 GLOBALSESSION 的基础上更改当前的隔离级别,是 SET transaction_isolation ='new-value' 的替代语句,提供 MySQL 和 SQL 标准的兼容性。

    1. SHOW SESSION VARIABLES LIKE 'transaction_isolation';
    1. +-----------------------+-----------------+
    2. | Variable_name | Value |
    3. +-----------------------+-----------------+
    4. 1 row in set (0.00 sec)
    1. Query OK, 0 rows affected (0.00 sec)
    1. SHOW SESSION VARIABLES LIKE 'transaction_isolation';
    1. SET SESSION transaction_isolation = 'REPEATABLE-READ';
    1. Query OK, 0 rows affected (0.00 sec)
    1. +-----------------------+-----------------+
    2. | Variable_name | Value |
    3. +-----------------------+-----------------+
    4. 1 row in set (0.00 sec)
    • TiDB 支持仅在语法中将事务设置为只读的功能。
    • 不支持隔离级别 READ-UNCOMMITTEDSERIALIZABLE
    • 通过快照隔离 (Snapshot Isolation) 技术,实现乐观事务的 REPEATABLE-READ 隔离级别,和 MySQL 兼容。
    • 在悲观事务中,TiDB 支持与 MySQL 兼容的 REPEATABLE-READREAD-COMMITTED 两种隔离级别。具体描述详见 Isolation Levels