锁的类型 :行级锁和表级锁
1, 行级锁:
(1)是一种排他锁,防止其他事务修改此行
(2)在使用以下语句时,oracle会自动应用行级锁;
insert
update
delete
select ...for update
(3)select ... from update 语句允许用户一次锁定对条记录进行更新
(4)使用 commit 或rollback语句释放锁
例如:
select * from order_master where vencode='V002' for update of odate,del_date;
update order_master set del_date='28-8月-05' where vencode='V002';
commit;
------
select * from order_master where vencode='V002' for update wait 5;
select * from order_master where vencode='V002' from update nowait;
2.表级锁类型 :LOCK TABLE table_name IN mode MODE;
行共享,行排他,共享,共享行排他,排他
(1)行共享(ROW SHARE)禁止排他锁定表
(2)行排他(ROW EXCLUSIVE) 禁止使用排他锁和共享锁
(3)共享锁(SHARE) 锁定表,仅允许其他用户查询表中的行;禁止其他用户插入、更新和删除行;多个用户可以同时在同一个表上应用此锁
(4)共享行排他(SHARE ROW EXCLUSIVE) 比共享锁更多的限制,禁止使用共享锁及更高的锁
(5)排他(EXCLUSIVE) 限制最强的标锁,仅允许其他用户查询该表的行。禁止修改和锁定表。