当前位置:首页 > 网络编程 > 数据库 > Oracle > SET TRANSACTION READ ONLY教程

SET TRANSACTION READ ONLY教程

点击次数:28 次 发布日期:2008-11-22 16:40:33 作者:源代码网
源代码网推荐

将当前事务设置为只读模式。在该模式下所发出的查询,都是查询的设置事务只读模式时的数据状态(通过一致性读取实现)。比如我在 session 1 中设置事务为只读模式:
 
-- session 1
SQL> set transaction read only;
 
事务处理集。
 
SQL> select * from test1;
 
A                             B
-------------------- ----------
test1                        99
test1                      1010
test1                      1111
test1                      1212
test1                      1313
tianyc                     6666
 
已选择6行。

 
  在 session 2 中,我修改 test1 中数据,并提交:
 
-- session 2
SQL> insert into test1 values("new", 9999);
 
已创建 1 行。
 
SQL> commit;
 
提交完成。
 
SQL> select * from test1;
 
A                             B
-------------------- ----------
test1                        99
test1                      1010
test1                      1111
test1                      1212
test1                      1313
tianyc                     6666
new                        9999
 
已选择7行。

 
  此时,虽然事务已经持久化到数据库中了,但在 session 1 中查询到的仍是 6 条数据:
 
-- session 1
SQL> set transaction read only;
 
事务处理集。
 
SQL> select * from test1;
 
A                             B
-------------------- ----------
test1                        99
test1                      1010
test1                      1111
test1                      1212
test1                      1313
tianyc                     6666
 
已选择6行。

 
  这个功能有什么用处呢?当你要做多个报表时,为了构造一致的数据,避免由于制作报表期间数据被更新而导致不平衡的数据出现,可以设置你的事务为只读模式

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华