当前位置: 首页 > 知识库问答 >
问题:

插入导致排他锁的内部事务

廉宇
2023-03-14

我正在事务中做一个简单的插入行,下面是我遵循的步骤

    < li >开始; < li >插入数据 < li >查询pg_locks

pg_locks现在说有一个独家锁,如下图所示。

根据该文档,排他锁只能通过并发刷新物化视图来获得。

我到底做错了什么?

使用pgsql-9.4

插入前的 Pg Locks 表有四行,这是由于在两个单独的会话中查询pg_locks表本身。

插入之后,它有两个额外的行,一个是实际事务id本身,它是一个独占锁,另一个是关系RowExclusiveLock

共有1个答案

邢思淼
2023-03-14

这些是交易id上的锁。这完全正常。

目的是另一个事务可以尝试获取该事务的锁,导致它等待直到第一个事务提交或回滚(从而释放其自身的锁)才能继续。

您只需要担心关系锁。

 类似资料:
  • 问题内容: 我尝试学习Go,但是我经常感到沮丧,因为其他语言似乎无法在Go中使用某些基本功能。因此,基本上,我想使用在其他文件中定义的结构类型。我能够使用结构类型以外的功能。在main.go中, 正如我所期望的那样,它可以完美运行(以及所有其他功能)(列表位于$ GOPATH中)。在软件包列表中,我将struct定义如下: 我想在其他结构中使用此结构,所以我尝试做这样的事情, 但不幸的是,我收到未

  • 但是我无法访问JAR中的包。而且它也不在外部库中。我有一些模型类,我试图做的是在一个不同的项目中使用那些。

  • 我在运行以下代码时遇到了一个奇怪的问题: 首先,代码是用OpenJDK-11和OpenJFX-11编译的,在Windows中运行良好(即退出call)。 然而,如果我在Linux(特别是Ubuntu20.04)上运行这个程序,调用会锁定线程,程序永远不会退出。注释出调用将使其重新正常工作。 我只是在(这是SystemLookAndFeel返回的结果)或者我在这里做了什么错误/意外的事情?

  • 我正在将一个INSERT写入一个DB2表,该表使用我插入的记录作为触发器,并被指控是锁定文件和阻止触发器工作的罪魁祸首。 目前,我可以编写记录,但它会挂起我的应用程序,并且我没有从DB2数据库得到任何响应。(尽管它确实写了!)。 我被告知我可能正在使用“更新模式”写作,但除了没有实际设置任何模式之外,我没有做任何具体的事情: 我只能猜测我的应用程序挂起的原因,其中一个猜测是没有在INSERT语句上

  • seata版本:1.4.0,但1.4以下的所有版本也都有这个问题 问题描述:在一个全局事务中,一个分支事务上的纯查询操作突然卡住了,没有任何反馈(日志/异常),直到消费端RPC超时 问题排查 整个流程在一个全局事务中,消费者和提供者可以看成是全局事务中的两个分支事务,消费者 --> 提供者 消费者先执行本地的一些逻辑,然后向提供者发送RPC请求,确定消费者发出了请求已经并且提供者接到了请求 提供者

  • 我使用下面的抽屉布局。所以我的片段附加到工具栏下面的框架布局。当我显示片段时,我将home按钮从humburger更改为箭头: 问题是-当我单击箭头按钮时,活动或片段中没有onOptionsItemSelec的事件。如果我没有使用