
事务可以看作是由对数据库的若干 *** 作组成的一个单元,这些 *** 作要么都完成,要么都取消,从而保证数据满足一致性的要求。事务的一个典型例子是银行中的转帐 *** 作,帐户A把一定数量的款项转到帐户B上,这个 *** 作包括两个步骤,一个是从帐户A上把存款减去一定数量,二是在帐户B上把存款加上相同的数量。这两个步骤显然要么都完成,要么都取消,否则银行就会受损失。显然,这个转帐 *** 作中的两个步骤就构成一个事务。
数据库中的事务还有如下ACID特征。
ACID分别是四个英文单词的首写字母,这四个英文单词是Atomicity、Consistency、Isolation、Durability,分别翻译为原子性、一致性、隔离性、持久性。
在SQL Server中有三种事务类型,分别是:隐式事务、显式事务、自动提交事务,缺省为自动提交。
在Oracle中没有SQL Server的这些事务类型,缺省情况下任何一个DML语句都会开始一个事务,直到用户发出Commit或Rollback *** 作,这个事务才会结束,这与SQL Server的隐式事务模式相似。
回话1:设置为只读事务,应该是这样嘛:
select sal from emp where ename = ‘SMITH’ for update;
你再按你步骤试一下看看,回话2是不是hung了
第二个问题是:只读事务只在很特殊的情况下才用到,比如航空公司网上值机预订座位
已经提交的事务即在进行update或insert *** 作后,进行了commit的 *** 作。
1、如,有以下两个语句:
update test set id=3 where id=2;commit;insert into test values (4,'王五');
commit;
2、如果进行了update及insert *** 作后不进行提交的话,那么修改或插入的数据只在当前session有效,并不会写入数据库,只有当commit(提交)后,才会生效。
ORACLE事务从COMMIT、ROLLBACK、连接到数据库或开始第一条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出数据库时结束。如果在一个事务中包含DDL语句,则在DDL语句的前后都会隐含地执行COMMIT语句,从而开始或结束一个事务。
如果一个事务由于某些故障或者由于用户改变主意而必须在提交前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
利用ROLLBACK语句可以在COMMIT命令
以上就是关于什么是事务,oracle和sql server 在事务处理上有何不同全部的内容,包括:什么是事务,oracle和sql server 在事务处理上有何不同、Oracle数据库只读事务与顺序事务的理解。、oracle数据库中什么是已经提交的事务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)