【发布时间】:2023-04-05 18:48:01
【问题描述】:
我在事务中做一个简单的插入行,这是我遵循的步骤
- 开始;
- 插入数据
- 查询 pg_locks
pg_locks 现在表示有一个独占锁,如下图所示。
根据文档,独占锁只能通过同时刷新物化视图获得。
我在这里做错了什么?
使用 pgsql - 9.4
插入前的 pg_locks 表有四行,这是由于在两个单独的会话中查询 pg_locks 表本身。
插入后它有两个额外的行,一个是实际的事务ID本身,它是一个排他锁,另一个是关系RowExclusiveLock
【问题讨论】:
-
您是否查看了所有这些列的含义? postgresql.org/docs/9.2/static/view-pg-locks.html 提示:这里持有排他锁是什么意思?
-
我知道它只保留一行,但是在这种特殊情况下,ExclusiveLock 和 RowExclusiveLock 有什么区别。
-
据我所知,
ExclusiveLock不属于关系(请以 formatted 文本的形式发布此类示例数据,而不是屏幕截图)跨度> -
为不同类型的对象持有 ExclusiveLocks。
标签: database postgresql transactions