sql怎么创建事务,

sql怎么创建事务,,第1张

1、begin transaction:开始事务

2、commit transaction:提交事务。

3、rollback transaction:回滚事务。

事务( )

在上面的例子中 在发出了MIT语句之后 只有UPDATE *** 作会提交到数据库 所有的DELETE *** 作都被回滚 保存点first_delete将被清除 该查询所占用的所有资源也被释放

在当前事务中 保存点的名称必须是唯一的 如果使用相同的名称声明了一个新的保存点 则之前的保存点将被销毁

Microsoft SQL Server 在定义保存点的语法中添加了TRAN关键字 它建立保存点的语法如下所示

SAVE TRAN[SACTION] <savepoint name>

要使前面的代码能在Microsoft SQL Server中正常运行 只需要将SAVEPOINT关键字替换为SAVE TRANSACTION关键字即可

涉及多个数据库的事务称为分布式事务 分布式事务本身就非常复杂 要求许多高级的技术和知识 分布式事务涉及使用两阶段提交 它允许在一个事务中使用多种混杂的数据源 万一网络连接中断 分布式事务必须尽可能地减少数据丢失的风险 分布式事务使用的是两阶段提交协议 各个RDBMS对此的具体实现上存在一定的差异 但通常都遵循相同的两阶段原则

事务的隔离级别

SQL标准定义了多种事务隔离级别 隔离级别指的是事务在自己的作用域内查看外部世界(即被任何其他事务修改了的数据)的能力 表 列出了SQL标准定义的几种隔离级别

表 SQL标准定义的事务隔离级别

Oracle g/ g已经实现了 种事务隔离级别 SERIALIZABLE READ MITTED和READ ONLY

DB 定义事务隔离级别的术语与SQL标准的术语存在一定的混淆 SQL标准中定义的SERIALIZABLE隔离级别在DB 中名为REPEATABLEREAD(RR) 这是DB 中最高的隔离级别 DB 也支持使用SQL标准的关键字作为RR的同义词 SQL标准中的REPEATABLEREAD在DB 中是READSTABILITY(RS) 另外DB 还引入了一个新的隔离级别

CURSORSTABILITY

最后一个隔离级别 CURSORSTABILITY(CS) 是IBM DB 中默认的事务隔离级别 它类似于SQL标准中的READ MITTED隔离级别(实际上 它确保一行数据保持不变)

UNMITTEDREAD(UR)隔离级别与SQL标准中的定义相同 不获取任何锁 因此可能发生脏读(脏读指的是一个事务在读取数据时 另外一个事务正在修改这些数据 因此可能产生不确定的结果)

Microsoft SQL Server 不但支持SQL标准定义的所有 种隔离级别 它还添加了一个SNAPSHOT隔离级别 用于保证在事务期间读取的数据与在事务一开始时的数据保持一致 隔离级别是为整个会话设置的 而不是为会话中的单个事务设置的

表 列出了SQL标准中定义的 种隔离级别 以及在每一种隔离级别下的行为 脏读指的是读取了还未提交到数据库的数据 不可重复读指的是在事务访问数据期间 数据可能发生改变 幻读则与不可重复读有关 它描述了这样一种情形 对一个相同的数据集执行同样的查询 每次返回的查询结果不相同

表 SQL中的事务隔离级别

       返回目录 SQL实战新手入门

       编辑推荐

       Oracle索引技术

       高性能MySQL

lishixinzhi/Article/program/SQL/201311/16447

事务控制语句 (transaction)

事务就是一系列的 *** 作,要么同时完成,要么不完成

都是由一个dml语句开始的

updata emp2 set sal=sal*2

delete from dept2

insert into salgrade values (6,10000,20000)

//这样是一个transaction语句,如果使用rollback返回,则上面三条语句将不起任何作用

transaction语句的结束为 1.rollback transaction语句结束.

2.commit提交完成,transaction语句结束

3.执行ddl,或则dcl语句事务自动提交.

4.当用户正常断开连接时,transcation自动提交

5.当用户非正常断开连接时,Oracle自动执行rollback语句

如:select * from dept2//transcation开始

create table t (a varchar2(20))//执行了ddl语句,则transcation语句自动提交


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11434002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存