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行。
这个功能有什么用处呢?当你要做多个报表时,为了构造一致的数据,避免由于制作报表期间数据被更新而导致不平衡的数据出现,可以设置你的事务为只读模式
源代码网供稿. |