PL/SQL Developer 窥探事务

本文介绍了SQL中的基本概念,包括连接、会话(session)、事务(transaction)等,并详细解释了事务的开启与结束方式,以及不同会话间的数据可见性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次登录代表一个连接

一个SQL Window 代表一个会话(session),有唯一的SID

事务(transaction) 由 insert 、update 或者 delete 开启

由 commit 或者 rollback 结束

会话中可以有事务,可以没有事务

会话之间是不可见的(事务中的CUD对于其他会话不可见)

不能看到隔壁屋,只能看到自己屋

数据存储区域是所有会话共享的(commit 会把改动持久化到数据存储区)

...........................................................................................................                                                                                     

INSERT INTO person VALUES ('1','1',1); --487

DELETE FROM person --2476

UPDATE person SET age = 12 --2676

SELECT * FROM person --1721

SELECT OBJECT_NAME AS 对象名称, S.SID, S.SERIAL#, P.SPID AS 系统进程号
  FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P
 WHERE L.OBJECT_ID = O.OBJECT_ID
   AND L.SESSION_ID = S.SID
   AND S.PADDR = P.ADDR;

1. SID 是否唯一不变  

  • SQL Window 打开之后变有了一个session,有一个唯一SID 。
  • 执行插入,开启事务后查看;再次开启再次查看。SID 不变。
  • 关闭window 或者断开连接,session 就会关闭。

2. A会话中CUD事务其他会话是否可见 

  • 在insert window中执行插入,不提交。在select window 中执行查询 ,看不到记录
  • insert window 中 提交。select window中执行查询 可以查看到记录

3. A会话中的CUD事务是否自己可见 

  • insert window中执行插入
  • insert window中执行查询,可以看到数据

 

转载于:https://www.cnblogs.com/zno2/p/4766131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值