类型: integer
默认: 0 (0ms)
最低限度: 0 (0ms)
最大: 2147483647 (2147483647ms)
单元: milliseconds (ms)
上下文: user
重新开始: false
以来: 9.3

如果任何语句在试图获取表、索引、行或其他数据库对象上的锁时等到超过指定的时间量,该语句将被中止。 该时间限制独立地应用于每一次锁获取尝试。该限制会应用到显式锁定请求(如LOCK TABLE或不带NOWAITSELECT FOR UPDATE)和隐式获得的锁。 如果指定值时没有单位,则以毫秒为单位。一个零值(默认)将禁用超时。

statement_timeout不同,这个超时只在等待锁时发生。注意如果statement_timeout为非零,设置lock_timeout为相同或更大的值没有意义,因为事务超时将总是第一个被触发。 如果log_min_error_statement 被设置为ERROR 或更低,超时的语句将被记录。

我们不推荐在postgresql.conf中设置lock_timeout,因为它会影响所有会话。

建议 [EN]

… but consider setting this per application or per query for any explicit locking attempts.

条评论