current/requested headings, add link to table from text.
-
+
Concurrency Control
To some extent the names reflect the typical usage of each lock
mode — but the semantics are all the same. The only real difference
between one lock mode and another is the set of lock modes with
- which each conflicts. Two transactions cannot hold locks of conflicting
+ which each conflicts (see ).
+ . Two transactions cannot hold locks of conflicting
modes on the same table at the same time. (However, a transaction
never conflicts with itself. For example, it might acquire
ACCESS EXCLUSIVE lock and later acquire
releases locks acquired within it.
+
+
-
Compatibility of lock modes
+
Conflicting lock modes
-
-
-
-
-
-
-
-
-
+
+
+
|
- Modes
- AS
- RS
- RE
- SUE
- S
- SRE
- E
- AE
+ Requested Lock Mode
+ Current Lock Mode
+
+ |
+ ACCESS SHARE
+ ROW SHARE
+ ROW EXCLUSIVE
+ SHARE UPDATE EXCLUSIVE
+ SHARE
+ SHARE ROW EXCLUSIVE
+ EXCLUSIVE
+ ACCESS EXCLUSIVE
|
- AS
- Y
- Y
- Y
- Y
- Y
- Y
- Y
- N
+ ACCESS SHARE
+
+
+
+
+
+
+
+ X
|
- RS
- Y
- Y
- Y
- Y
- Y
- Y
- N
- N
+ ROW SHARE
+
+
+
+
+
+
+ X
+ X
|
- RE
- Y
- Y
- Y
- Y
- N
- N
- N
- N
+ ROW EXCLUSIVE
+
+
+
+
+ X
+ X
+ X
+ X
|
- SUE
- Y
- Y
- Y
- N
- N
- N
- N
- N
+ SHARE UPDATE EXCLUSIVE
+
+
+
+ X
+ X
+ X
+ X
+ X
|
- S
- Y
- Y
- N
- N
- Y
- N
- N
- N
+ SHARE
+
+
+ X
+ X
+
+ X
+ X
+ X
|
- SRE
- Y
- Y
- N
- N
- N
- N
- N
- N
+ SHARE ROW EXCLUSIVE
+
+
+ X
+ X
+ X
+ X
+ X
+ X
|
- E
- Y
- N
- N
- N
- N
- N
- N
- N
+ EXCLUSIVE
+
+ X
+ X
+ X
+ X
+ X
+ X
+ X
|
- AE
- N
- N
- N
- N
- N
- N
- N
- N
+ ACCESS EXCLUSIVE
+ X
+ X
+ X
+ X
+ X
+ X
+ X
+ X