PL/SQL 11g R2 —— 事务

行级锁

SELECT … FOR UPDATE [OF columns] [WAIT n | NOWAIT];
说明: OF 子句用于指定即将更新的列,即锁定行上的特定列。WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待

表级锁

使用命令显示地锁定表,应用表级锁的语法是: LOCK TABLE table_name IN mode MODE;


行共享 (ROW SHARE)    – 禁止排他锁定表
行排他(ROW EXCLUSIVE) – 禁止使用排他锁和共享锁
共享锁(SHARE)
      锁定表,仅允许其他用户查询表中的行
      禁止其他用户插入、更新和删除行
      多个用户可以同时在同一个表上应用此锁
共享行排他(SHARE ROW EXCLUSIVE) – 比共享锁更多的限制,禁止使用共享锁及更高的锁

排他(EXCLUSIVE) – 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表


RS Row share table lock

以下的操作会产生RS lock

   Select * from tab for update.

  LOCK TABLE table IN ROW SHARE MODE;

  RS不允许的操作:

    LOCK TABLE table IN EXCLUSIVE MODE;  


RX (RowExclusive Table Locks)
以下的操作会产生 RX lock

1:INSERT,UPDATE ,DELETE

2:LOCK TABLEtable IN ROW EXCLUSIVE MODE;

 

RX 不允许的操作

 LOCKTABLE table IN SHARE MODE;

 LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

 LOCKTABLE table IN EXCLUSIVE MODE;


S (ShareTable Locks )
以下操作产生 S lock.

   LOCK TABLE table IN SHARE MODE;

S 不允许的操作

   LOCK TABLE table IN SHARE ROW EXCLUSIV EMODE;

   LOCK TABLE table IN EXCLUSIVE MODE;

   LOCK TABLE table IN ROW EXCLUSIVE MODE;


SRX (ShareRow Exclusive Table Locks)
以下操作产生 SRX LOCK

  LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

SRX 不允许的操作 .

  LOCK TABLE table IN SHARE MODE;

  LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;

 LOCK TABLE table IN ROW EXCLUSIVE MODE;

   LOCK TABLE table IN EXCLUSIVE MODE;

X(Exclusive Table Locks )
以下操作产生 X LOCK

LOCK TABLE table IN EXCLUSIVE MODE;

X 不允许的操作

   不允许所有的操作

事务处理

oraclecommitrollbacksavepoint这三条语句可以完 ,使用savepoint可以做到部分撤消事务。  


锁模式

锁模式锁描述解释SQL操作
0none
1NULLselect
2SS(Row-S)不用许获得6级锁,允许获得2、3、4、5级锁;允许做DML、alter操作,不允许做drop、truncate。ROW SHARE
3SX(Row-X)不允许获得4、5、6级锁,允许获得2、3级锁;允许做DML操作,不允许做alter、drop、truncate操作。Insert、Update、Delete、for update、ROW EXCLUSIVE
4S(Share)不允许获得3、5、6级锁,允许获得2、4级锁;不允许DML、DDL操作。SHARE
5SSX(S/Row-X)不允许获得3、4、5、6级锁,允许获得2级锁;不允许DML、DDL操作。SHARE ROW EXCLUSIVE
6X(Exclusive)不允许获得任何锁,不允许任何操作。Alter、Drop、Truncate、EXCLUSIVE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值