Oracle LOCK TABLE语句(锁表)

Oracle LOCK TABLE语句(锁表)

Oracle LOCK TABLE语句(锁表)

在 Oracle 中,LOCK TABLE 语句可以用来锁定表、表分区或表子分区。本教程将和大家一起学习 LOCK TABLE 语句的详细用法。

LOCK TABLE语法

LOCK TABLE 语句的语法是:

LOCK TABLE tables IN lock_mode MODE [ WAIT [, integer] | NOWAIT ];

参数

tables:用逗号分隔的表格列表。

lock_mode:它是以下值之一:

lock_mode 描述

ROW SHARE

允许同时访问表,但阻止用户锁定整个表以进行独占访问。

ROW EXCLUSIVE

允许对表进行并发访问,但阻止用户以独占访问方式锁定整个表并以共享方式锁定表。

SHARE UPDATE

允许同时访问表,但阻止用户锁定整个表以进行独占访问。

SHARE

允许并发查询,但用户无法更新锁定的表。

SHARE ROW EXCLUSIVE

用户可以查看表中的记录,但是无法更新表或锁定SHARE表中的表。

EXCLUSIVE

允许查询锁定的表格,但不能进行其他活动。

WAIT:它指定数据库将等待(达到指定整数的特定秒数)以获取 DML 锁定。

NOWAIT:它指定数据库不应该等待释放锁。

LOCK TABLE示例

下面是一个如何在 Oracle 中使用 LOCK TABLE 语句的例子:

LOCK TABLE suppliers IN SHARE MODE NOWAIT;

这个例子会锁定 suppliers 表在共享模式,而不是等待锁定被释放。

Oracle中的锁定可以分为几类:1、DML lock(data lock),2、DDL lock(dictionary lock)3、internal lock/latch。DML lock又可以分为row lock和table lock。row lock在select.. for update/insert/update/delete时隐式自动产生,而table lock除了隐式产生,也可以调用lock table in name来显示锁定。如果不希望别的session lock/insert/update/delete表中任意一行,只允许查询,可以用lock table table_name in exclusive mode。(X)这个锁定模式级别最高,并发度最小。如果允许别的session查询或用select for update锁定记录,不允许insert/update/delete,可以用lock table table_name in share row exclusive mode。(SRX)如果允许别的session查询或select for update以及lock table table_name in share mode,只是不允许insert/update/delete,可以用lock table table_name in share mode。(share mode和share row exclusive mode的区别在于一个是非抢占式的而另一个是抢占式的。进入share row exclusive mode后其他session不能阻止你insert/update/delete,而进入share mode后其他session也同样可以进入share mode,进而阻止你对表的修改。(S)还有两种锁定模式,row share(RS)和row exclusive(RX)。他们允许的并发操作更多,一般直接用DML语句自动获得,而不用lock语句。详细参考concepts文档中的"Type Of Locks":http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2937 -------------------------------------怎么unlock table 解锁方法一、kill session:SQL> select object_id,session_id from v$locked_object; //注意session_id 就是上锁的 session标志SQL> select username,sid,SERIAL# from v$session where sid=。。; //这里的SID = session_id SQL> alter system kill session 'id,serial#'; //杀死该session方法二、rollback/commit 终止事务处理

相关推荐

为什么你的网站在海外访问很慢?3个服务器网络配置细节常被忽略
移动40g流量多少钱?2023年最新资费
365batapp

移动40g流量多少钱?2023年最新资费

📅 07-13 👁️ 4279
北京市全景地图,街景地图
365网站打不开了

北京市全景地图,街景地图

📅 07-22 👁️ 9972
去日本带多少日元最合适?
365batapp

去日本带多少日元最合适?

📅 07-12 👁️ 229
轻松三步,彻底清除Windows上网痕迹,隐私保护攻略大揭秘!
Nginx 基础教程:安装、配置与实用指南
365bet资讯

Nginx 基础教程:安装、配置与实用指南

📅 07-08 👁️ 2195