SYNOPSIS

SET TRANSACTION
[ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ] [ READ WRITE | READ ONLY ]
SET SESSION CHARACTERISTICS AS TRANSACTION
[ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ] [ READ WRITE | READ ONLY ]

DESCRIPTION 描述

SET TRANSACTION 命令为当前事务设置特性。 它对后面的事务没有影响。 SET SESSION CHARACTERISTICS 为一个会话中的每个事务设置缺省的隔离级别。 SET TRANSACTION 可以为一个独立的事务覆盖上面的设置。

可用的事务特性是事务隔离级别和事务访问模式(读/写或者只读)。

事务的隔离级别决定一个事务在同时存在其它并行运行的事务时它能够看到什么数据。

READ COMMITTED
一条语句只能看到在它开始之前的数据。这是缺省。
SERIALIZABLE
当前的事务只能看到在这次事务第一条查询或者修改数据的语句执行之前的数据。

Tip: 提示: 说白了,serializable(可串行化)意味着两个事务将把数据库保持在同一个状态,
就好象这两个事务是严格地按照先后顺序执行地那样。

事务隔离级别在事务中第一个数据修改语句 (SELECT, INSERT, DELETE,
UPDATE, FETCH, COPY) 执行之后就不能再次设置。 参阅 Chapter 12
``Concurrency Control'' 获取有关事务隔离级别和并发性控制的更多信息。

事务访问模式决定事务是读/写还是只读。读/写是缺省。如果一个 事务是只读,而且写入的表不是临时表,那么下面的 SQL 命令是不允许的:INSERT, UPDATE,DELETE,和 COPY TO; 而所有的 CREATE,ALTER,和 DROP 命令; COMMENT,GRANT,REVOKE, TRUNCATE;和 EXPLAIN ANALYZE 和EXECUTE 都不允许。这是一个高层次的只读概念,它并不阻止对磁盘的写入。

NOTES 注意

会话的缺省事务隔离级别也可以用命令

SET default_transaction_isolation = 'value'

以及在配置文件里设置。 参考 Section 16.4 ``Run-time Configuration'' 获取更多信息。

COMPATIBILITY 兼容性

两个命令都在 SQL 标准里定义了。SQL 里的缺省事务隔离级别是 SERIALIZABLE; 在 PostgreSQL 里,缺省隔离级别是 READ COMMITED,但是你可樊伟胜以用上面的描述修改它。 PostgreSQL 并没有提供隔离级别 READ UNCOMMITTED 和 REPEATABLE READ。 因为多版本并发控制,SERIALIZABLE 级别并非真正的可串行化。参阅 Chapter 12 ``Concurrency Control'' 获取细节。

在 SQL 标准里还有另外一种事务特性可以用这些命令设置:诊断范围的大小。这个概念只用于嵌入的 SQL。

SET TRANSACTION - 设置当前事务的特性的更多相关文章

  1. MySQL SET TRANSACTION 设置事务隔离级别

    1. 首先说一下autocommit 默认情况下autocommit的开关是打开的,也就是ON,查看方法 方法1. select @@[global/session].autocommit; 方法2. ...

  2. 存储过程 务的概念 事务的特性 关于异常的处理 连接池 构JdbcUtil类

    1 存储过程    1)用当地数据库语言,写的一段业务逻辑算法,并该算法存储在客户端    2)使用存储过程需要用于CallableStatement接口,同时需要使如下SQL命令调用:{call a ...

  3. 14.3.2.1 Transaction Isolation Levels 事务隔离级别

    14.3.2 InnoDB Transaction Model InnoDB 事务模型 14.3.2.1 Transaction Isolation Levels 事务隔离级别 14.3.2.2 au ...

  4. 事务的特性(ACID)

    一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. // 创建 ...

  5. 对事务的特性ACID的理解

    对事务的特性ACID的理解 数据库的事务必须具备ACID特性,ACID是指 Atomicity(原子性).Consistensy(一致性).Isolation(隔离型)和Durability(持久性) ...

  6. 【MySQL】:事务四大特性与隔离级别

    目录 一.事务的概念 二.事务的四大特性 1.原子性 2.一致性 3.隔离性 4.持续性 三.事务语句 1.开启事务:start transaction 2.事务回滚:rollback 指定回滚点 3 ...

  7. 数据库 事务的特性ACID

    数据库 事务的特性ACID 事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐 ...

  8. spring事务传播特性实验(2):PROPAGATION_REQUIRED实验结果与分析

    本文延续上一文章(spring事务传播特性实验(1):数据准备),在已经准备好环境的情况下,做如下的实验,以验证spring传播特性,加深对spring传播特性的理解. 本次主要验证PROPAGATI ...

  9. Python Django,事务,transaction.atomic,事务保存点

    from django.shortcuts import renderfrom django.http import HttpResponsefrom django.views.generic imp ...

随机推荐

  1. DevOps打造端到端的价值交付

    首先就要来说下什么是端到端: 敏捷帮助我们解决了开发域从计划到测试(部分测试内容)的问题 持续集成帮助解决了从计划到测试完成的过程 持续发布解决了从计划到待发布的过程 持续部署解决了从计划到已上线的过 ...

  2. Java管道流学习

    管道流 作用:用于线程之间的数据通信 管道流测试:一个线程写入,一个线程读取 import java.io.IOException; import java.io.PipedInputStream; ...

  3. python方法参数:*和**操作符

    * def test_args_kwargs(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", ar ...

  4. Python实现手机号自动判断性别

    本文性别判断主要依靠airtest中的自动化测试实现 通过自动对比支付宝页面男女图像,从而实现男女判断 代码如下: 男女判断函数: // An highlighted block def numbe( ...

  5. vue部署后刷新404问题

    为什么会404NotFound Internet Information Services (IIS) 第一步:安装 IIS UrlRewrite 第二步:配置重写URL规则 在你的网站根目录中创建一 ...

  6. 【leetcode】126. Word Ladder II

    题目如下: 解题思路:DFS或者BFS都行.本题的关键在于减少重复计算.我采用了两种方法:一是用字典dic_ladderlist记录每一个单词可以ladder的单词列表:另外是用dp数组记录从star ...

  7. 洛谷P3372/poj3468(线段树lazy_tag)(询问区间和,支持区间修改)

    洛谷P3372 //线段树 询问区间和,支持区间修改 #include <cstdio> using namespace std; struct treetype { int l,r; l ...

  8. 【HDOJ6608】Fansblog(威尔逊定理)

    题意:给定质数p,求q!模p的值,其中q为小于p的最大质数 1e9<=p<=1e14 思路:根据质数密度近似分布可以暴力找q并检查 找到q后根据威尔逊定理: 把q+1到p-1这一段的逆元移 ...

  9. Sumdiv

    题目链接 题意:求a^b的所有约数之和mod9901. 思路:因为一个数A能够表示成多个素数的幂相乘的形式.即A=(a1^n1)*(a2^n2)*(a3^n3)...(am^nm).所以这个题就是要求 ...

  10. appium移动端自动化测试的一些感想

    花了一个多月的时间来复习,学习appium+python+android的UI层的自动化测试. 从最开始的环境搭建,都后面运行脚本报错各类错,到优化脚本结构,基本上问题不断. 相比,selenium做 ...