15.1.?概述

uxrowlocks(text) returns setof record

参数是一个表的名称。结果是一个记录集合,其中每一行对应表中一个被锁定的行。输出列如下表所示。

表?15.1.?uxrowlocks输出列

名称类型描述
locked_rowtid被锁定行的元组ID(TID)。
lockerxid持锁者的事务ID,如果是多事务则为多事务ID。
multiboolean如果持锁者是一个多事务,则为真。
xidsxid[]持锁者的事务ID(如果是多事务则多于一个)。
lock_typetext[]持锁者的锁模式(如果是多事务则多于一个),是一个Key Share、Share、For No Key Update、No Key Update、For Update、Update组成的数组。
pidsinteger[]锁定后端的进程ID(如果是多事务则多于一个)。

uxrowlocks会为目标表加AccessShareLock并且一个一个读取每一行来收集行的锁定信息。这对于一个大表速度较慢。

注意

  1. 如果表被其他人整体加上了排他锁,uxrowlocks将被阻塞。

  2. uxrowlocks不保证能产生一个自澳门游戏平台注册网站一致的快照。在它执行期间,有可能加上一个新行锁,也有可能有旧行锁被释放。

uxrowlocks不显示被锁定行的内容。如果想同时查看行内容,可以这样做:

SELECT * FROM accounts AS a, uxrowlocks('accounts') AS p
  WHERE p.locked_row = a.ctid;

注意

不过要注意,这样查询将非常低效。

XML 地图 | Sitemap 地图