本文主要是介绍oracle19C之lock table,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
官网地址:LOCK TABLE
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
LOCK TABLE
目的
使用LOCK
TABLE
用指定的方式锁定一个或多个表、表分区或表子分区的语句。此锁手动覆盖自动锁定,允许或拒绝其他用户在操作期间访问表或视图。
一些形式的锁可以同时放在同一个表上。其他锁只允许一张桌子上的锁。
锁定的表一直被锁定,直到您提交事务或回滚它,或者是完全的,或者是在锁定表之前被保存在一个保存点上。
锁不会阻止其他用户查询表。查询从不把锁放在桌上.读者从不阻挡作家,作家从不阻挡读者。
另见:
-
甲骨文数据库概念 关于锁模相互作用的完整描述
-
承诺
-
回滚
-
保存点
先决条件
表或视图必须在您自己的架构中,或者您必须拥有LOCK
ANY
TABLE
系统特权,或您必须拥有任何对象特权(除了READ
表上或视图上的对象特权。
语法的
锁表 ::=
图片来自官网原文
插图的说明。
partition_extension_clause ::=
图片来自官网原文
插图部分的说明_延伸_条款。
语义学
图解
指定包含表或视图的架构.如果你忽略了schema
,然后甲骨文数据库假设表或视图在您自己的架构中。
TABLE | VIEW
指定要锁定的表或视图的名称。
如果你指定view
然后甲骨文数据库锁定视图的基表。
如果你指定partition_extension_clause
,然后甲骨文数据库首先获得了表上的隐式锁。表锁与您为分区或子分区指定的锁相同,有两个例外:
-
如果你指定
SHARE
锁定子分区,然后数据库获得一个隐式的ROW
SHARE
把它锁在桌上。 -
如果你指定
EXCLUSIVE
锁定子分区,然后数据库获得一个隐式的ROW
EXCLUSIVE
把它锁在桌上。
如果你指定PARTITION
和table
经过组合分区,然后数据库获得对分区的所有子分区的锁。
锁定表的限制
以下限制适用于锁定表:
-
如果
view
是层次结构的一部分,那么它必须是层次结构的根。 -
您只能获取自动列表分区表中现有分区的锁。也就是说,当您指定下列语句时,分区键值必须对应于表中已经存在的分区;它不能对应于稍后可能根据需求创建的分区:
LOCK TABLE ... PARTITION FOR (partition_key_value) ...
dblink
指定一个数据库链接到远程甲骨文数据库的表或视图的位置.只有使用甲骨文分布式功能,才能锁定远程数据库上的表和视图。所有的桌子都被LOCK
TABLE
声明必须在同一数据库中。
如果你忽略了dblink
,然后甲骨文数据库假设表或视图在本地数据库上。
另见:
" 远程数据库中对象的引用 " 有关指定数据库连结的资料
锁模 条款
指明下列模式之一:
ROW
SHARE
允许对上锁表的并发访问,但禁止用户为独家访问锁定整个表。ROW
SHARE
代表着SHARE
UPDATE
,这是为了与之前版本的甲骨文数据库兼容。
ROW
EXCLUSIVE
就像ROW
SHARE
,但也禁止锁定SHARE
模式。ROW
EXCLUSIVE
当更新、插入或删除时,会自动获得锁。
看ROW SHARE. .
SHARE
SHARE
允许并发查询,但禁止对锁定的表进行更新。
SHARE
ROW
EXCLUSIVE
用于查看整个表,允许其他人查看表中的行,但禁止其他人将表锁在表中。SHARE
模式或更新行。
EXCLUSIVE
允许在上锁的桌子上查询,但禁止在它上进行任何其他活动。
指定NOWAIT
如果您希望数据库立即返回控件,如果指定的表、分区或表子分区已经被另一个用户锁定。在本例中,数据库返回一个消息,表明另一个用户已经锁定了表、分区或子分区。
WAIT
使用WAIT
以表明LOCK
TABLE
语句应该等待指定的秒数来获得DML锁。对价值没有限制的integer
.
如果你不指明NOWAIT
也不WAIT
然后,数据库无限期地等待,直到表可用,并锁定它,然后将控件返回给您。当数据库与DML语句同时执行DDL语句时,有时会导致超时或死锁。数据库检测这种超时和死锁,并返回错误。
另见:
甲骨文数据库管理员指南 有关锁定表的更多信息
例子
锁定表格:示例
以下声明锁定了employees
使用独家模式的表,但如果另一个用户已经锁定了表,则不必等待:
LOCK TABLE employeesIN EXCLUSIVE MODE NOWAIT;
以下语句锁定远程employees
可通过数据库链接访问的表格remote
:
LOCK TABLE employees@remote IN SHARE MODE;
这篇关于oracle19C之lock table的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!