oracle19C之lock table

2024-01-18 00:20
文章标签 table lock oracle19c

本文主要是介绍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 允许对上锁表的并发访问,但禁止用户为独家访问锁定整个表。ROW SHARE 代表着SHARE UPDATE ,这是为了与之前版本的甲骨文数据库兼容。

ROW EXCLUSIVE

ROW EXCLUSIVE 就像ROW SHARE ,但也禁止锁定SHARE 模式。ROW EXCLUSIVE 当更新、插入或删除时,会自动获得锁。

SHARE UPDATE

ROW SHARE. .

SHARE

SHARE允许并发查询,但禁止对锁定的表进行更新。

SHARE ROW EXCLUSIVE

SHARE ROW EXCLUSIVE 用于查看整个表,允许其他人查看表中的行,但禁止其他人将表锁在表中。SHARE 模式或更新行。

EXCLUSIVE

EXCLUSIVE允许在上锁的桌子上查询,但禁止在它上进行任何其他活动。

NOWAIT

指定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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/617619

相关文章

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示

点击“会商人员情况表”,弹出层,显示一个表格,如下图: 利用Ajax和Jquery和JSONArray和JsonObject来实现: 代码如下: 在hspersons.html中: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>会商人员情况表</title><script type="text/javasc

UVa 10820 Send a Table (Farey数列欧拉函数求和)

这里先说一下欧拉函数的求法 先说一下筛选素数的方法 void Get_Prime(){ /*筛选素数法*/for(int i = 0; i < N; i++) vis[i] = 1;vis[0] = vis[1] = 0;for(int i = 2; i * i < N; i++)if(vis[i]){for(int j = i * i; j < N; j += i)vis[j] =

css-table

设置table的文字不换行:给th,td添加white-space: nowrap; 设置单元格内容及其边框的距离:使用html的cellpadding属性,还有一种方式设置padding。在CSS中,table, th, td{padding:0;}效果等同于cellpadding="0″。 设置table的单元格边距:border-spacing如果定义一个 length 参数,那么定义的是水

react antd table expandable defaultExpandAllRows 不生效问题

原因:defaultExpandAllRows只会在第一次渲染时触发 解决方案:渲染前判断table 的datasource 数据是否已准备好 {pageList.length > 0 ? (<TablerowSelection={rowSelection}columns={columns}dataSource={pageList}style={{ marginTop: 24 }}pagina

el-table 封装表格(完整代码-实时更新)

最新更新时间: 2024年9月6号 1. 添加行内编辑、表头搜索 <template><!-- 简单表格、多层表头、页码、没有合并列行 --><div class="maintenPublictable"element-loading-background="rgba(255,255,255,0.5)"><!--cell-style 改变某一列行的背景色 --><!-- tree-props

@vueup/vue-quill使用quill-better-table报moduleClass is not a constructor

quill官方中文文档:https://www.kancloud.cn/liuwave/quill/1434144 扩展表格的使用 注意:想要使用表格 quill的版本要是2.0以后 升级到这个版本后 其他一些插件就注册不了了。 安装: npm install quill@latest   版本需要大于2.0版本 npm install quill-better-table 引入&

【0323】Postgres内核之 hash table sequentially search(seq_scan_tables、num_seq_scans)

0. seq scan tracking 我们在这里跟踪活跃的 hash_seq_search() 扫描。 需要这种机制是因为如果扫描正在进行时发生桶分裂(bucket split),它可能会访问两次相同的条目,甚至完全错过某些条目(如果它正在访问同一个分裂的桶中的条目)。因此,如果正在向表中插入数据,我们希望抑制桶分裂。 在当前的使用中,这种情况非常罕见,因此只需将分裂推迟到下一次插入即可。

table跨行跨列,字体大小

table跨行跨列,字体大小 <table width="100%"> <tr>         <td style="vertical-align:top"><font size="7">某某</font></td>         <td style="vertical-align:top" colspan="2" align="right"><font size="5">求职意向:W

Apache-Flink深度解析-Temporal-Table-JOIN

在《JOIN LATERAL》中提到了Temporal Table JOIN,本篇就向大家详细介绍什么是Temporal Table JOIN。在ANSI-SQL 2011 中提出了Temporal 的概念,Oracle,SQLServer,DB2等大的数据库厂商也先后实现了这个标准。Temporal Table记录了历史上任何时间点所有的数据改动,Temporal Table的工作流程如下: