【发布时间】:2020-12-16 18:36:41
【问题描述】:
从我们在 PostgreSQL 中进行的测试来看,对表的未授权访问排他锁似乎阻塞了访问共享锁。下面描述了我们执行的测试。
第 1 节:
begin;
select * from users where id = 1;
注意:交易是有意为测试开放的
第 2 节:
alter table users add column foo boolean;
注意: 此语句被 Session 1 中的语句阻塞。访问排他锁尚未授予。
第三节:
select * from users where id = 2;
会话 3 中的最后一条语句被阻止。
当来自alter语句的访问排他锁尚未被授予(因为它被会话1阻塞)时,它是如何阻塞的?我们有什么遗漏的吗?
【问题讨论】:
标签: sql database postgresql locking