我正在开发一个使用Django + Postgresql的系统。这是我第一次使用postgresql,但是我选择它是因为我需要事务和外键功能。Postgresql锁死锁
在某个视图中,我必须用AccessExclusiveLock锁定我的表,以防止在此视图中进行任何读取或写入。这是因为我在保存/更新我的实体之前对整个数据进行了一些检查。
我注意到不时发生的不一致错误。这是因为在锁定语句之后直接发生了select语句。它要求有AccessShareLock。我阅读postgresql website AccessShareLock与AccessExclusiveLock冲突。
我不明白的是为什么它首先发生。为什么postgresql会要求隐式锁,如果它已经有一个明确的锁来覆盖那个隐式锁?我不明白的第二件事是为什么这个视图在两个不同的postregsql进程上运行?他们是不是应该在一次交易中收集?
Thanx提前。
你能提供导致这个问题的例子吗?如一个工作示例。 – Kuberchaun 2010-10-19 15:45:07
OT:不要在“developer.postgresql.org”使用文档 - 有Postgres的下一个但尚未发布的版本。 – 2010-10-19 18:16:24
@ StarShip3000恐怕我做不到。专有的废话。 – thelinuxer 2010-10-20 13:07:55